我使用的是WinForms和c#,我希望显示有效卡日期的员工列表。我尝试过以下代码:
DataManager.NotificationManager obj = new DataManager.NotificationManager();
DataTable dt1 = obj.GetListExpiryDate();
DateTime currendate = DateTime.Today;
foreach (DataRow row in dt1.Rows)
{
if (DateTime.Parse(row.ItemArray[41].ToString()) == currendate)
{
MessageBox.Show("Expired carte for the employee" + row["EmpFName"]);
}
}
我的存储过程:
CREATE PROCEDURE [dbo].[GetListExpiryDate]
AS
BEGIN
SELECT *
FROM MST_Employee
END
我需要在消息框中显示具有到期卡日期的员工列表,但问题是它只显示第一个。有什么想法吗?
答案 0 :(得分:1)
希望这是你想要完成的。要获得更好的效果,请使用StringBuilder
代替string
string message = string.Empty;
foreach (DataRow row in dt1.Rows)
{
if (DateTime.Parse(row.ItemArray[41].ToString()) == currendate)
{
message += "Expired carte for the employee" + row["EmpFName"] + "\n";
}
}
MessageBox.Show(message);
同时使用row["columnname"]
代替row.ItemArray[41]
String.Builder
版本:
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt1.Rows)
{
if (DateTime.Parse(row.ItemArray[41].ToString()) == currendate)
{
sb.AppendLine("Expired carte for the employee" + row["EmpFName"]);
}
}
MessageBox.Show(sb.ToString());
您可能还想查看此SO问题How to get a list in a MessageBox
中的答案