C# 靠近'的语法不正确;名称';

C# 靠近'的语法不正确;名称';,c#,sql,.net,sql-server,C#,Sql,.net,Sql Server,我发现了一些错误: “nvarchar”附近的语法不正确。 “Name”附近的语法不正确 请帮我从中得到帮助 我还向名称(@)添加了标量,但没有得到任何结果 public partial class Form1 : Form { SqlCommand cmd; SqlConnection con; private void button1_Click(object sender, EventArgs e) { con = new SqlConne

我发现了一些错误:

“nvarchar”附近的语法不正确。
“Name”附近的语法不正确

请帮我从中得到帮助

我还向名称(
@
)添加了标量,但没有得到任何结果

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();       
    }
}

问题就在这个
名称附近

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
参数也是如此:因为您拥有它的名称,所以最好将其更改为没有空格的名称。

问题就在这个
名称附近:

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
参数也是如此:因为您拥有它的名称,所以最好将其更改为没有空格的名称。

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


@Staff Name
更改为
@StaffName

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

@Staff Name
更改为
@StaffName

您的代码在任何地方都不包含“nvarchar”。。。尽管我怀疑您需要逃逸或将
@Staff Name
更改为
@[Staff Name]
@StaffName
,但由于空间有限,您不能使用“Staff Name”。尝试使用“StaffName”或“Staff_Name”。(显然,您需要更改数据库以与之匹配)您的代码在任何地方都不包含“nvarchar”。。。尽管我怀疑您需要逃逸或将
@Staff Name
更改为
@[Staff Name]
@StaffName
,但由于空间有限,您不能使用“Staff Name”。尝试使用“StaffName”或“Staff_Name”。(显然,您需要更改数据库以与此匹配)