【问题标题】:Duplicate and add same records along w/new records that have different values for one column in asp.net在 asp.net 中的一列具有不同值的新记录中复制并添加相同的记录
【发布时间】:2013-12-28 20:47:46
【问题描述】:

我在 C# 中有一个带有 SQL Server 的 asp.net 页面,我正在尝试插入记录(根据一个文本字段(日期)的记录数重复。

这里是sn-ps的代码:

aspx页面:

<label>First Name:</label>  <asp:TextBox runat="server" size="25" maxlength="25" ID="txtFirstName" />
<label>Last Name: </label> <asp:TextBox runat="server" size="25" maxlength="25" ID="txtLastName" />
<label>1st Date: </label> <asp:TextBox CssClass="date" ID="txtDate" runat="server" size="11" maxlength="11" />
<label>Additional Date: </label> <asp:TextBox CssClass="date" ID="txtDate2" runat="server" size="11" maxlength="11" />
<label>Additional Date: </label> <asp:TextBox CssClass="date" ID="txtDate3" runat="server" size="11" maxlength="11" />

后面的代码:

 protected void btnSubmit_Click(object sender, EventArgs e)
 {
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

    string query = "INSERT INTO [myApp] ([FirstName], [LastName], [Date]) VALUES (@FirstName, @LastName, @Date)";

    SqlCommand cmd = new SqlCommand(query, conn);

    cmd.Parameters.AddWithValue("@FirstName", txtFirstName.Text);
    cmd.Parameters.AddWithValue("@LastName", txtLastName.Text);
    cmd.Parameters.AddWithValue("@Date", txtDate.Text);

我正在尝试将 FirstName、LastName 文本字段插入 FirstName 和 LastName 数据库列,同时将 Date 文本字段插入 Date 数据库列(单击提交按钮时)。我想将相同的记录(名字和姓氏)插入到与用户输入的日期数相同的数据库行中。例如:

用户输入:

FirstName: John
LastName: Smith
Date: 1/1/14
Additional Date: 1/2/14
Additional Date: 1/3/14

数据库行:

FirstName | LastName | Date
John        Smith      1/1/14
John        Smith      1/2/14
John        Smith      1/3/14

【问题讨论】:

  • 所以循环执行INSERT命令。
  • 您能详细说明一下代码示例吗?谢谢。

标签: c# asp.net sql


【解决方案1】:

最简单的解决办法是这样的:

string query = "INSERT INTO [myApp] ([FirstName], [LastName], [Date]) VALUES (@FirstName, @LastName, @Date)";
query += "INSERT INTO [myApp] ([FirstName], [LastName], [Date]) VALUES (@FirstName, @LastName, @AdditionalDate)";
query += "INSERT INTO [myApp] ([FirstName], [LastName], [Date]) VALUES (@FirstName, @LastName, @AdditionalDate2)";

只需使用 3 次插入构建查询并再添加 2 个参数 @AdditionalDate@AdditionalDate2

另外,用using 包装SqlConnection 也是一个好习惯

using(var conn = new SqlConnection(...))
{
}

以便您始终将其丢弃。

【讨论】:

    【解决方案2】:

    假设您使用的是 SQL Server(基于语法),您可以在一个查询中执行此操作:

    insert into myApp(FirstName, LastName, [date])
        select @FirstName, @LastName, thedate
        from (select @date as thedate union all
              select @additionaldate1 union all
              select @additionaldate2
             ) t;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 2023-01-11
      • 2011-08-19
      • 1970-01-01
      • 2017-05-05
      相关资源
      最近更新 更多