gpt4 book ai didi

c# - 如何根据子查询中的子查询插入值

转载 作者:行者123 更新时间:2023-11-29 23:04:48 24 4
gpt4 key购买 nike

我有一个需要从 Windows 窗体更新的表,我能够将显示的值更新到表中,因为我无法更新特定列,其中要更新的值必须是引用值Windows 窗体上显示的数据。引用值在另一个表中。代码如下:

command.CommandText = "INSERT INTO tblComplaints (ComplaintID, Description,ComplaintTypeID,ReceivedDate,ComplaintTypeID)VALUES('" + TextBox7.Text + "','" + TextBox10.Text + "','" + dateTimePicker1.Text + "',???)";

代码中的问号(???)就是我所需要的。更准确地说,ComplaintTypeName 显示在comboBox1 的表单中,而我需要更新其ID,其值存在于tblComplaintType 中

最佳答案

假设您提前以某种方式分配了 ComboBox 值

ComboboxItem item = new ComboboxItem();
item.Text = "Item text1";
item.Value = 12;
comboBox1.Items.Add(item);

您可以执行以下操作:

command.CommandText = "INSERT INTO tblComplaints " +
"(ComplaintID, Description, ComplaintTypeID, ReceivedDate, ComplaintTypeID) " +
"VALUES (@Description,@ComplaintTypeID,@ReceivedDate,@ComplaintTypeID)";
command.Parameters.AddWithValue("@Description", TextBox7.Text);
command.Parameters.AddWithValue("@ComplaintTypeID", TextBox10.Text);
command.Parameters.AddWithValue("@ReceivedDate", dateTimePicker1.Text);
command.Parameters.AddWithValue("@ComplaintTypeID", comboBox1.SelectedValue);

请注意,我从 sql 命令中删除了 ComplaintID。由于这是一条 INSERT 语句,因此您可能会获得该记录的生成 ID。如果不是这种情况,您必须在命令中提供另一个参数。

此外,您应该始终对命令进行参数化,而不是通过字符串连接来构建它们,以防止 SQL 注入(inject)。

关于c# - 如何根据子查询中的子查询插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com