【问题标题】:Combining 2 insert into in one command将 2 个插入组合到一个命令中
【发布时间】:2016-04-28 22:37:37
【问题描述】:

我想不通: 我想在 table-a 中添加一行,该行的 3 列将来自 table-b,其他 2 列将来自例如文本框... 此代码不起作用...

SqlCommand cmd35 = new SqlCommand("INSERT INTO BTmr (Barcode,[Machine Name],[Machine ID]) SELECT Barcode,[Machine Name],[Machine ID] FROM BkmP WHERE barcode like '" + c13 + "%' UNION INSERT INTO BTmr([Repair Cost],[Repair Date],Barcode)values (@cst,@rprd)", connection);

            cmd35.Parameters.AddWithValue("@cst", textBox10.Text);
            cmd35.Parameters.AddWithValue("@rprd", dateTimePicker1.Text);

【问题讨论】:

  • 在放入 table-a 之前从 table-b 中选择列,您将拥有要输入 table-a 的所有值。
  • 您的选择应该在插入语句之外执行,以便您将列值读入变量。

标签: insert-into


【解决方案1】:

只需将参数作为静态值放在 select 语句中即可。

SqlCommand cmd35 = new SqlCommand("INSERT INTO BTmr (Barcode,[Machine Name],
    [Machine ID],[Repair Cost],[Repair Date]) SELECT Barcode,[Machine Name],
    [Machine ID],@cst AS [Repair Cost],@rprd AS [Repair Date] FROM BkmP WHERE
    barcode like '" + c13 + "%', connection);

cmd35.Parameters.AddWithValue("@cst", textBox10.Text);
cmd35.Parameters.AddWithValue("@rprd", dateTimePicker1.Text);

当您使用它时,将 where 子句参数化:https://stackoverflow.com/a/251380/123422

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2017-03-26
    • 2012-06-30
    相关资源
    最近更新 更多