【问题标题】:SQL server remove space before value when I insert data插入数据时,SQL Server 删除值前的空格
【发布时间】:2013-06-10 13:39:04
【问题描述】:

当我使用SqlCommand 插入数据时,它还会在我刚刚插入的值之前添加空格。如何避免添加空格?

这里是插入查询代码:

SqlCommand cmd1 = new SqlCommand("INSERT INTO [Contracts].[dbo].[Contract] 
    ([Contract_Id],[Name],[Description],[Contracted_by],[Vendor_Name],[Related_Dept],[Start_date],[Expiration_Date],[TypeofContract],[Contact_Person],[Contact_No],FileName,FileData,FileType) 
    VALUES (' " + TextBox1.Text + "',' " + TextBox2.Text + "',' " + TextBox3.Text + "',' " + TextBox4.Text + "',' " + TextBox5.Text + "',' " + DepartmentTextBox.SelectedValue.ToString() + "',' " + TextBox7.Text + "',' " + TextBox8.Text + "',' " + TextBox9.Text + "',' " + TextBox10.Text + "',' " + TextBox11.Text + "',@Name,@Data,@Type)", con);

【问题讨论】:

标签: c# sql


【解决方案1】:

当您使用字符串连接来构建命令文本时,当然会出现任何类型的问题。在您的情况下,您无意中在控制值之前添加了一个空格。
如果您使用了参数化查询,则不会出现此问题

  SqlCommand cmd1 = new SqlCommand("INSERT INTO [Contracts].[dbo].[Contract] " + 
     "([Contract_Id],[Name],[Description],[Contracted_by],[Vendor_Name],[Related_Dept]," + 
     "[Start_date],[Expiration_Date],[TypeofContract],[Contact_Person]," + 
     "[Contact_No],FileName,FileData,FileType) VALUES (" + 
     "@cid, @name, @desc, @cby, @vname, @rdept, @stdate, @expdate, " + 
     "@tc, @cp, @cno, @file, @fdate, @ftype",con)

  SqlParameter p = new SqlParameter("@cid", SqlDbType.Int).Value = Convert.ToInt32(textBox1.Text));
  cmd.Parameters.Add(p);
  .... and so on for the other parameters required

顺便说一句,请记住,如果您有 IDENTITY 列,则不应尝试在该列中插入任何内容(此处特别怀疑 Contract_ID)

【讨论】:

    【解决方案2】:

    插入空格是因为您的查询字符串中有多余的空格。我把"',' "改成了"','"

    SqlCommand cmd1 = new SqlCommand("INSERT INTO [Contracts].[dbo].[Contract] ([Contract_Id],
     [Name],[Description],[Contracted_by],[Vendor_Name],[Related_Dept],[Start_date],
     [Expiration_Date],[TypeofContract],[Contact_Person], Contact_No],FileName,FileData,FileType) 
     VALUES ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + 
     TextBox4.Text + "','" + TextBox5.Text + "','" + DepartmentTextBox.SelectedValue.ToString() 
     + "','" + TextBox7.Text + "','" + TextBox8.Text + "','" + TextBox9.Text + "','" + 
     TextBox10.Text + "','" + TextBox11.Text + "',@Name,@Data,@Type)", con);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 2021-08-16
      • 2013-05-17
      • 1970-01-01
      相关资源
      最近更新 更多