Extrair CSV

19/08/2021

7

Boa tarde, tenho essa query abaixo que fiz, porém estou com dificuldade em fazer que a data na função where da query seja digitada ou algo do tipo.
Eu preciso gerar esse relatório de segunda, quarta e sexta e o relatório é gerado sempre pega a data da última gerada, eu faço isso manual.
Ex: amanhã dia 20, vou gerar o relatório com a data inicial do dia 18 até da data do dia extraido.

where p.PedidoId = i.PedidoId and DataPedido > ''20210818''

a ideia era fazer que fosse automático de algum modo.

Estou extraindo em "CSV" como não manjo muito c# foi a forma mais fácil que achei pra fazer essa extração, tentei extrair direto pra xlsx e ficou meio complicado rsrs.

Estou rodando esse codigo direto no LINQPad 5

void Main() {
GetCSV();
}

private string GetCSV() {
using (SqlConnection cn = new SqlConnection(GetConnectionString())) {
cn.Open();
return CreateCSV(new SqlCommand("SELECT p.PedidoId AS Pedido_ID, format(p.DataPedido,''dd/MM/yyyy'') as Data_do_Pedido, format(p.DataPedido, ''HH:mm:ss'') as Hora_do_Pedido, p.NumeroPedido AS Numero_do_Pedido, cast(p.PontoTotal as int) AS Total_de_Pontos, i.EAN, i.ProdutoSkuId AS ProdutoSku_ID, s.CodigoProdutoSku AS Codigo_do_ProdutoSku FROM Pedido p(NOLOCK) join PedidoItem i(NOLOCK) on i.PedidoId = p.PedidoId join ProdutoSku s(NOLOCK) on i.ProdutoSkuId = s.ProdutoSkuId where p.PedidoId = i.PedidoId and DataPedido > ''20210811'' Order by p.PedidoId", cn).ExecuteReader());
}
}

private string CreateCSV(IDataReader reader) {
string fileName = "C:\\Users\\Bruno\\Documents\\relatorio" + DateTime.Now.ToString("yyyyMMdd_hhmmss") + ".csv";
List<string> lines = new List<string>();

string headerLine = "";
if (reader.Read()) {
string[] columns = new string[reader.FieldCount];
for (int i = 0; i < reader.FieldCount; i++) {
columns[i] = reader.GetName(i);
}
headerLine = string.Join(",", columns);
lines.Add(headerLine);
}

//data
while (reader.Read())
{
object[] values=new object[reader.FieldCount];
reader.GetValues(values);
lines.Add(string.Join(",", values));
}

//create file
System.IO.File.WriteAllLines(fileName, lines);

return fileName;
}
private string GetConnectionString() {
return @"Server=server;Database=LProducao;User ID=user;Pwd=senha;";
}

// Define other methods and classe here
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar