更新查询C#SQL server单选按钮

更新查询C#SQL server单选按钮,c#,sql-server,C#,Sql Server,单击按钮时,此更新查询不起作用。这里的组是单选按钮,但程序正在抛出一个exoption private void editAll_Click(object sender, EventArgs e) { string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\DELL\source\repos\phoneBookwin\phoneBookwin\Databas

单击按钮时,此更新查询不起作用。这里的组是单选按钮,但程序正在抛出一个exoption

private void editAll_Click(object sender, EventArgs e)
{
    string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\DELL\source\repos\phoneBookwin\phoneBookwin\Database1.mdf;Integrated Security=True";

    string value;
    bool friendCheck = newFriends.Checked;
    bool familyCheck = newFamily.Checked;
    bool emergencyCheck = newEmergency.Checked;
    bool collCheck = newColl.Checked;
    if (friendCheck)
        value = newFriends.Text;
    else if (familyCheck)
        value = newFamily.Text;
    else if (emergencyCheck)
        value = newEmergency.Text;
    else if (collCheck)
        value = newColl.Text;
    else
        value = "";
    using (SqlConnection con = new SqlConnection(connectionString))
    using (SqlCommand Command = con.CreateCommand())
    {
        con.Open();
        Command.CommandText = " update Contacts set Name =@newName, Contacts = @newNumber, Email = @newEmail, Group = @newGroup where Name = @changeName"; 
        Command.Parameters.AddWithValue("@newName",newName.Text);
        Command.Parameters.AddWithValue("@newNumber", newNumber.Text);
        Command.Parameters.AddWithValue("@newEmail", newEmail.Text);
        Command.Parameters.AddWithValue("@newGroup", value);
        Command.Parameters.AddWithValue("@changeName", changeName.Text);
        Command.ExecuteNonQuery();
        con.Close();
    }
    this.Hide();
    
    Form1 save = new Form1();
    save.ShowDialog();
}
抛出异常

'关键字'Group'附近的语法不正确。'

在SQL查询中用方括号括起关键字“Group”:

update Contacts 
set Name =@newName, Contacts = @newNumber, Email = @newEmail, [Group] = @newGroup 
where Name = @changeName

正如我在这里的评论中所写的,首先你应该使用方括号来表示关键字
group

Command.CommandText = " update Contacts set [Group] = @newGroup, Name =@newName, Contacts = @newNumber, Email = @newEmail where Name = @changeName"; 
第二,正如前面所解释的那样,avoid
AddWithValue
存在一些问题

替换

Command.Parameters.Add(new AddWithValue("@newName",newName.Text);
用这个

command.Parameters.Add(new SqlParameter("@newName", SqlDbType.VarChar)      
  { Value = (newName.Text == "") ? (object)DBNull.Value : newName.Text });

group
不是sql server中的关键字吗?您是否尝试过使用
[group]
?@GuidoG发布一个带有“Readthis”注释的链接并不特别有用;有些人不愿意在没有任何信息的情况下浏览链接。建议你写“不要使用addwithvalue…”,而不仅仅是“单击此处”。@SMor Fair。在我写了评论之后,我还写了一个回复,再次包含了相同的链接。我应该在那之后删除评论,但我忘了