更新全局数据表 c#

本文关键字:数据表 全局 更新 | 更新日期: 2023-09-27 17:56:29

在程序中,我尝试将数据表设置为全局变量,然后在不同的类中编辑列表框中具有选定ID的行。它在某种程度上工作,如果我选择一个 ID,它将设置变量,当我尝试在不同的类中使用它来编辑数据库中的详细信息时,它不显示所选 ID 的行,而是显示数据库中的最后一行。

设置全局变量的代码:

  FileReader details = new FileReader();
        Guest gst = new Guest();
        DataTable guestDetails;
        guestDetails = details.LoadingGuestsFromDatabase();
        foreach (DataRow row in guestDetails.Rows)
        {
            if (lstGuest.SelectedItem.ToString() == row["Guest_ID"].ToString())
           {
            lblName.Text = row["Name"].ToString();
            lblEmail.Text = row["Email"].ToString();
            lblAge.Text = row["Age"].ToString();
            lblPhoneNo.Text = row["Phone_Number"].ToString();
            lblRoomType.Text = row["Room_Type"].ToString();

                 Globals.setCurrent(guestDetails);
        }

当使用来宾详细信息数据表设置 setCurrent 时,它将继续转到用于编辑来宾的窗体,如下所示:

   DataTable editedGuest;
        editedGuest = Globals.getCurrent();

        foreach (DataRow rows in editedGuest.Rows)
        {
            txtUpdateName.Text = rows["Name"].ToString();
            txtUpdateAge.Text = rows["Age"].ToString();
            txtUpdateEmail.Text = rows["Email"].ToString();
            txtUpdatePhone.Text = rows["Phone_Number"].ToString();
        }

现在要发生的是显示所选来宾的详细信息,而不是数据库中的最后一个来宾!我不确定是否需要创建另一个SQL命令来获取选定的来宾?任何建议都会有所帮助!谢谢。

更新全局数据表 c#

我认为您需要向其添加更多代码:

foreach (DataRow rows in editedGuest.Rows)
{
     if(rows["ID"].ToString().Equals(dropDownList.SelectedValue.ToString()))
     {
        txtUpdateName.Text = rows["Name"].ToString();
        txtUpdateAge.Text = rows["Age"].ToString();
        txtUpdateEmail.Text = rows["Email"].ToString();
        txtUpdatePhone.Text = rows["Phone_Number"].ToString();
        break;
      }
}

或者可以使用 Linq 查询数据表。