如何使用c#在消息框中显示数据库中的数据列表?

时间:2015-05-22 08:28:52

标签: c# .net winforms

我使用的是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

我需要在消息框中显示具有到期卡日期的员工列表,但问题是它只显示第一个。有什么想法吗?

1 个答案:

答案 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

中的答案