이 코드 세트는 서버에서 일정 기간 동안 데이터를 검색하고 메모장에 표시하는 것입니다. 왜 확실하지 않은 이유는 메시지 상자 "char", "money"및 "nvarchar"를 계속 나타냅니다. 당신은 MessageBox
가 여러에게 데이터 형식 MessageBox
ES를보고있는 이유는 루프 내부에 표시되고있는 자사의 경우 바보 같은 질문messagebox의 무한 루프
SqlCommand objCmd = new SqlCommand("SELECT CONVERT(char(80), InvDate,3) AS InvDate,InvoiceNo,EmployerCode,TaxAmount + SubTotal AS Amount,'' AS Payment FROM Invoice WHERE (InvDate >= CONVERT(datetime, '"+dtpFrom.Text +"', 0)) AND (InvDate <= CONVERT(datetime, '"+dtpTo.Text+"', 0))", objConn);
SqlDataReader objReader;
objReader = objCmd.ExecuteReader();
System.IO.FileStream fs = new System.IO.FileStream("C:\\CMSExportedData\\Sales-" + DateTime.Now.ToString("dd-MM-yyyy") + ".txt", System.IO.FileMode.Create);
System.IO.StreamWriter sw = new System.IO.StreamWriter(fs, System.Text.Encoding.Default);
int count = 0;
while (objReader.Read())
{
for (int i = 0; i < 5; i++)
{
if (!objReader.IsDBNull(i))
{
string s;
s = objReader.GetDataTypeName(i);
MessageBox.Show(s);
if (objReader.GetDataTypeName(i) == "char")
{
sw.Write(objReader.GetString(i));
}
else if (objReader.GetDataTypeName(i) == "datetime")
{
sw.Write(objReader.GetSqlMoney(i).ToString());
}
else if (objReader.GetDataTypeName(i) == "nvarchar")
{
sw.Write(objReader.GetString(i));
}
}
if (i < 4)
{
sw.Write("\t");
}
}
count = count + 1;
sw.WriteLine();
}
sw.Flush();
fs.Close();
objReader.Close();
objConn.Close();
MessageBox.Show(count + " records exported successfully.");
this.Close();
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void dtpTo_ValueChanged(object sender, EventArgs e)
{
}
'돈'유형의 열을 처리하지 않으시겠습니까? – Aphelion
나의 좋은 선생님 !! 나는 술을 살 수 있니? u는 대단해 !! – Newbie
@Aphelion 선생님, 제 잘못, 돈이라고 생각합니다. 그 나쁜 코드에 대한 내 잘못은 – Newbie