C# 通过单击按钮C Winform获取动态创建表单中每个记录的ID
我有一个表格,可以返回某个医生的所有预约。我想知道的是如何获取每个返回数据的ID 以下是我想要实现的目标。 1.根据此特定医生的预约次数动态创建控件。 2.编辑每个约会-但为了做到这一点。我需要去 通过单击事件指定面板的ID。我有什么权利 现在是。。我只获得最后一条记录的ID——C# 通过单击按钮C Winform获取动态创建表单中每个记录的ID,c#,winforms,C#,Winforms,我有一个表格,可以返回某个医生的所有预约。我想知道的是如何获取每个返回数据的ID 以下是我想要实现的目标。 1.根据此特定医生的预约次数动态创建控件。 2.编辑每个约会-但为了做到这一点。我需要去 通过单击事件指定面板的ID。我有什么权利 现在是。。我只获得最后一条记录的ID—— MySqlConnection con = new MySqlConnection("Server = localhost ;Database = mica_userclient_laravel; username =
MySqlConnection con = new MySqlConnection("Server = localhost ;Database = mica_userclient_laravel; username = root;");
// MySqlConnection con = new MySqlConnection("Server = sql12.freemysqlhosting.net; Database = sql12221392; Uid=sql12221392; Password=5gZN1uN6NX;");
MySqlDataAdapter da = new MySqlDataAdapter(@"SELECT users.id,
users.fname, users.mname, users.lname,
appointments.created_at, appointments.id,
appointments.status
FROM users, appointments
WHERE users.id = user_id
AND appointments.status = 0
AND appointments.client_id = '" + textBox2.Text + "'", con);
DataTable dt = new DataTable();
da.Fill(dt);
//textBox1.Text = dt.Rows[1].ItemArray[5].ToString();
//login.quantity = textBox2.Text;
//label4.Text = Convert.ToDateTime(dt.Rows[1].ItemArray[4]).ToString("MMM dd, yyyy");
//label7.Text = Convert.ToDateTime(dt.Rows[1].ItemArray[4]).ToString("h:mm tt");
//label3.Text = dt.Rows[1].ItemArray[3].ToString() + ", " + dt.Rows[1].ItemArray[1].ToString();
for (int i = 0; i < dt.Rows.Count; i++)
{
textBox[i] = new TextBox();
textBox[i].Name = "n" + i;
textBox[i].Text = dt.Rows[i].ItemArray[5].ToString();
textBox[i].Visible = true;
textBox[i].Location = new Point(txtboxX, txtboxY);
txtboxY += 25;
panel[i] = new Panel();
panel[i].Name = "n" + i;
panel[i].Width = 793;
panel[i].Height = 56;
panel[i].BackColor = Color.WhiteSmoke;
panel[i].Location = new Point(panelX, panelY);
panelY += 80;
label[i] = new Label();
label[i].Name = "n" + i;
//label[i].Parent = panel[i];
label[i].Font = new Font("Century Gothic", 14);
label[i].Height = 22;
label[i].Width = 250;
label[i].ForeColor = Color.Gray;
label[i].Text = dt.Rows[i].ItemArray[2].ToString() + ", " + dt.Rows[i].ItemArray[1].ToString();
label[i].Location = new Point(labelX, labelY);
label1[i] = new Label();
label1[i].Name = "n" + i;
//label[i].Parent = panel[i];
label1[i].Font = new Font("Century Gothic", 14, FontStyle.Bold);
label1[i].Height = 22;
label1[i].Width = 250;
label1[i].ForeColor = Color.Gray;
label1[i].Text = Convert.ToDateTime(dt.Rows[i].ItemArray[4]).ToString("MMM dd, yyyy - h:mm tt");
label1[i].Location = new Point(label1X, label1Y);
imgbtn[i] = new BunifuImageButton();
imgbtn[i].BackColor = Color.Transparent;
imgbtn[i].SizeMode = PictureBoxSizeMode.Zoom;
imgbtn[i].ImageLocation = @"Image\edit.png";
imgbtn[i].Width = 46;
imgbtn[i].Height = 38;
//imgbtn[i].ImageActive = @"Image\edit2.png";
imgbtn[i].Location = new Point(imgbtnX, imgbtnY);
imgbtn[i].Click += new EventHandler(bunifuImageButton1_Click);
this.Controls.Add(panel[i]);
this.Controls.Add(label[i]);
this.Controls.Add(imgbtn[i]);
this.Controls.Add(textBox[i]);
panel[i].Controls.Add(label[i]);
panel[i].Controls.Add(label1[i]);
panel[i].Controls.Add(imgbtn[i]);
gumanaka = textBox[i].Text;
}
单击表时,可以使用DataRowView获取该列 有关表格的“选择已更改”事件的示例,您可以使用:
DataRowView dr = table_name.SelectedItem as DataRowView;
int id = Convert.ToInt32(dr["appointments_id"]);
或者在您的情况下,如果是第五个元素:
int id = Convert.ToInt32(dr[4]);
只需使用
MessageBox.Show(dr.ToString());
很抱歉我需要获取动态创建的特定记录的ID。我只得到最后一张唱片。。是否有任何方法可以获取特定面板的ID?您所说的ID是什么意思?约会表中的约会ID。您正在表格的行上循环。要检索的ID存储在此表的哪列中?这是文本框中显示的值吗?因为我要连接两个表。。存储我的ID的列位于第5个ItemArray上。。每个记录的值都会动态显示。我稍后会尝试。非常感谢你!