有一个添加新组的表格(截图附在下面)。当您单击保存按钮时,此记录将保存到 tGroup 表中(成功)。保存后,应该从tGroup中取出这个组的id(主键),并转移到另一个表中(这就是sql查询出错的地方)。
void LoadIdGroup(string name)
{
adapter = new SqlDataAdapter("SELECT ID_Group from tGroups where sName="+name, connection);
dtGroup = new DataTable();
adapter.Fill(dtGroup);
bsGroup = new BindingSource();
bsGroup.DataSource = dtGroup;
}
private void saveBtn_Click(object sender, EventArgs e)
{
connection.Open();
SqlCommand commandInsert = new SqlCommand("INSERT INTO [tGroups]" +
" VALUES(@Name, @Count)", connection);
commandInsert.Parameters.AddWithValue("@Name", tbName.Text);
commandInsert.Parameters.AddWithValue("@Count", tbCount.Text);
commandInsert.ExecuteNonQuery();
connection.Close();
connection.Open();
SqlCommand commandInsertRoutes = new SqlCommand("INSERT INTO [tGroupsRoutes]" +
" VALUES (@ID_Group, @ID_Route)", connection);
commandInsertRoutes.Parameters.AddWithValue("@ID_Route", Convert.ToInt32(cbRoutes.SelectedValue));
LoadIdGroup(tbName.Text);
commandInsertRoutes.Parameters.AddWithValue("@ID_Group", Convert.ToInt32(((DataRowView)this.bsGroup.Current).Row["ID_Group"]));
commandInsertRoutes.ExecuteNonQuery();
connection.Close();
this.Dispose();
}


您已经了解了 SQL 查询的参数化。认真考虑一下,特别是因为您在相邻方法中使用它(参数化)。
但是,在这种情况下,错误是由于以下值周围缺少单引号引起的
name:因此,服务器认为值
namestring"Группа"是表中字段的名称。