名称'

时间:2015-08-04 15:47:41

标签: c# sql .net sql-server

我收到错误:

  

&nbspchar'附近的语法不正确   名称'附近的语法不正确。

请帮忙解决这个问题。

我还在名称(@)中添加了标量但我没有得到任何东西。

public partial class Form1 : Form
{
    SqlCommand cmd;
    SqlConnection con;

    private void button1_Click(object sender, EventArgs e)
    {
        con = new SqlConnection(@"Data Source=DELL_LAPTOP\sqlexpress;Integrated Security=True");
        con.Open();

        cmd = new SqlCommand("Insert Into newproj (Name,Designation,Gender,Age,Address,Date,Staff Name,Shift,ST,ET,Hours) Values (@Name,@Designation,@Gender,@Age,@Address,@Date,@Staff Name,@Shift,@ST,@ET,@Hours)", con);
        cmd.Parameters.Add("@Name", textBox4.Text);
        cmd.Parameters.Add("@Designation", textBox2.Text);
        cmd.Parameters.Add("@Gender", comboBox1.SelectedItem.ToString ());
        cmd.Parameters.Add("@Age", textBox3.Text);
        cmd.Parameters.Add("@Address", textBox5.Text);
        cmd.Parameters.Add("@Date", dateTimePicker1.Text);
        cmd.Parameters.Add ("@Staff Name", textBox1.Text);
        cmd.Parameters.Add ("@Shift", comboBox2.SelectedItem.ToString());
        cmd.Parameters.Add("@ST", textBox7.Text);
        cmd.Parameters.Add("@ET", textBox8.Text);
        cmd.Parameters.Add("@Hours", textBox6.Text);

        cmd.ExecuteNonQuery();       
    }
}

2 个答案:

答案 0 :(得分:5)

问题就在Name附近:

Insert Into newproj (Name,Designation,Gender,Age,Address,Date,Staff Name,Shift,ST,ET,Hours) Values
--                                                            ^^^^^^^^^^

由于标识符包含空格,因此需要将其括在方括号中,如下所示:

Insert Into newproj (Name,Designation,Gender,Age,Address,Date,[Staff Name],Shift,ST,ET,Hours) Values

同样适用于@Staff Name参数:因为你拥有它的名字,你最好把它改成没有空格的东西。

答案 1 :(得分:0)

不要在参数名称中使用空格。

@Staff Name更改为@StaffName