string doc_date = date[m].Value.ToString();//date数据(求解)--此时的doc_date还是原定数据,并不是我所选中的数据;如果将此行放入click内,而date[m]则会显示NULL,无法运行!!!!!!!!!
string doc_name = doctor_name[m];
string doc_price = price[m].Text;
string doc_time1 = doctor_time1[m];
string doc_remind1 = doctor_remind1[m];
time1_btn[m].Click += (time1_btn_s, time1_btn_e) =>
{
//将数据导入record
string strcon3 = "Data Source=LAPTOP;Initial Catalog=Big1;Integrated Security=True";
SqlConnection conn3 = new SqlConnection(strcon3);
conn3.Open();
string time = "insert into record(账号,医院科室,医师名称,挂号类别,挂号价格,挂号日期,挂号时间)values('" + userId + "','"+ doctor_dep + "','" + doc_name + "','专家号','" + doc_price + "','" + doc_date + "','" + doc_time1 + "')";
SqlCommand com_time = new SqlCommand(time, conn3);
com_time.ExecuteNonQuery();
conn3.Close();
//使余量减一
int remind = Convert.ToInt32(doc_remind1);
if(remind > 0)
{
string remind_str = Convert.ToString(remind - 1);
string strcon4 = "Data Source=LAPTOP;Initial Catalog=Big1;Integrated Security=True";
SqlConnection conn4 = new SqlConnection(strcon4);
conn4.Open();
string remind_del = "update Doctor_information set 时间余量1=" + remind_str + " where 医院科室='" + doctor_dep + "' and 医师名称='" + doc_name + "'";
SqlCommand com_remind = new SqlCommand(remind_del, conn4);
com_remind.ExecuteNonQuery();
conn4.Close();
MessageBox.Show("挂号成功!");
this.Visible = false;
Login log = new Login();
log.ShowDialog();
}
else
{
MessageBox.Show("此时间已无余量,请另选时间或医师!");
}
};
C#click事件无法将数组中数据传入,导致DateTimePicker所选数据无法传送
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 码老头 2021-12-21 17:29关注
以下只是根据你的问题简单设计了一个示例程序,具体的逻辑处理自行完成。
先看运行效果:
完整示例代码我放到了这里:
C#&.NET Winform桌面应用程序中如何动态生成控件并添加事件呢? | 码友网 https://codedefault.com/q/67928317875核心代码如下:
Form2.cs
private List<Doctor> _doctors; private void Form2_Load(object sender, EventArgs e) { _doctors = new List<Doctor> { new Doctor{Id = 1,Name = "Doctor(1)"}, new Doctor{Id = 2,Name = "Doctor(2)"}, new Doctor{Id = 3,Name = "Doctor(3)"} }; foreach (var doctor in _doctors) { var p = new Panel(); p.Location = new Point(0, doctor.Id * 50 + 10); p.Size = new Size(panel1.Width, 50); p.BorderStyle = BorderStyle.FixedSingle; p.Anchor = AnchorStyles.Left | AnchorStyles.Right; var lb = new Label { Text = doctor.Name, Location = new Point(0, 10), Size = new Size(100, 30), Font = new Font(FontFamily.GenericSansSerif, 14, FontStyle.Bold) }; var dp = new DateTimePicker { Location = new Point(110, 10) }; var btn = new Button { Text = @"预约", Dock = DockStyle.Right, Size = new Size(80, 20) }; btn.Click += (s, ev) => { MessageBox.Show($"你当前选择的医生是:{doctor.Name},预约时间是:{dp.Value.ToString("yyyy-MM-dd")}"); }; p.Controls.Add(btn); p.Controls.Add(lb); p.Controls.Add(dp); panel1.Controls.Add(p); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 Converting circular structure to JSON
- ¥30 Hyper-v虚拟机相关问题,求解答。
- ¥15 TSM320F2808PZA芯片 Bootloader
- ¥45 谷歌浏览器出现开发者工具无法显示已创建的,但您可以调试已部署的代码。 状态代码 404, net::ERR HTTP RESPONSE CODE FAILURE
- ¥15 如何解决蓝牙通话音频突发失真问题
- ¥15 安装opengauss数据库报错
- ¥15 【急】在线问答CNC雕刻机的电子电路与编程
- ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
- ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
- ¥15 Python pandas