我有这段代码只能打印DataGrid
的第一行,我需要“打印” 每一行 DataGrid
private void btnPrint_Click(object sender, RoutedEventArgs e)
{
try
{
//NON FUNZIONA ANCORA COME VORREI PERCHE INNANZITUTTO PRENDE IN CONSIDERAZIONE SOLO I DATI DELLA PRIMA RIGA(LO FA SOLO PERCHE L'HO INGANNATO)
//SE NO NON FAREBBE NEANCHE CIO' INOLTRE SE ESISTONO DUE ISTANZE DELLO STESSO ITEM PRENDENDO IN CONSIDERAZIONE SOLO LA PRIMA LA SECONDA PER LUI NON ESISTE.
if (!Directory.Exists(@"D:/Reports"))//controllo l'esistenza della directory di destinazione dei file generati
{
Directory.CreateDirectory(@"D:/Reports");//se non esiste la crea
}
string datoR, datoI, datoN;
//stamp id
SqlCommand Cmd = new SqlCommand("SELECT tabStoricoDetail.id FROM tabStoreExec JOIN tabStoricoDetail ON tabStoreExec.idSE=tabStoricoDetail.id WHERE tabStoricoDetail.NomeItem LIKE '" + this.txtSrcVR.Text + "'", sqliteCon);
Cmd.Connection.Open();
datoI = Cmd.ExecuteScalar().ToString();//cio che mi permette di stampare almeno un valore
var filename = string.Concat("Filename", DateTime.Now.ToString("ddMMyyHHmmss"), ".txt");//THIS STRING ALLOW TO BUILD FILES EVERY TIME THE USER CHANGE ITEM AND WANTO TO PRINT IT
TextWriter tw = new StreamWriter("D:/Reports/" + filename, true);//per scrivere id pt1
tw.WriteLine(datoI);//per scrivere id pt2
tw.Close();//per scrivere id pt3
Cmd.Connection.Close();
//stampa nome
SqlCommand Cmd1 = new SqlCommand("SELECT tabStoricoDetail.NomeItem FROM tabStoreExec JOIN tabStoricoDetail ON tabStoreExec.idSE=tabStoricoDetail.id WHERE tabStoricoDetail.NomeItem LIKE '" + this.txtSrcVR.Text + "'", sqliteCon);
Cmd1.Connection.Open();
datoN = Cmd1.ExecuteScalar().ToString();//cio che mi permette di stampare almeno un valore
TextWriter tw1 = new StreamWriter("D:/Reports/" + filename, true);//per scrivere id pt1
tw1.WriteLine(datoN);//per scrivere nome pt2
tw1.Close();//per scrivere nome pt3
Cmd1.Connection.Close();
//stampa result
SqlCommand Cmd2 = new SqlCommand("SELECT " +
"tabStoricoDetail.ResItemDet " +
"FROM tabStoreExec " +
"JOIN tabStoricoDetail " +
"ON tabStoreExec.idSE=tabStoricoDetail.id WHERE tabStoricoDetail.NomeItem LIKE '" + this.txtSrcVR.Text + "'", sqliteCon);
Cmd2.Connection.Open();
datoR = Cmd2.ExecuteScalar().ToString();//cio che mi permette di stampare almeno un valore
TextWriter tw2 = new StreamWriter("D:/Reports/" + filename, true);//per scrivere id pt1
tw2.WriteLine(datoR);//per scrivere il result pt2
tw2.Close();//per scrivere il result pt3
Cmd2.Connection.Close();
MessageBox.Show("File Created Successfully");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
sqliteCon.Close();
}
我只想将ExecuteScalar
转换为ExecuteReader
,但我不知道如何使用ExecuteReader
而不是{{1 } s,而不会破坏所有内容。最终目标是将ExecuteScalar
中的所有内容打印到文件.txt中
请帮忙
那就是我到达的地方
DataGrid
答案 0 :(得分:2)
您应该在记录上实现循环
Derby
更多代码:
Oracle