我试图在数据库中添加一行,但似乎有些错误。连接没问题,查询也很好但按下按钮后没有添加行。
con.Open();
SqlCommand cm = new SqlCommand("INSERT INTO Sports (Спорт) VALUES (@Спорт)",con);
cm.Parameters.AddWithValue("@Спорт", tbAddSport.Text);
try
{
int exec = cm.ExecuteNonQuery();
if (exec > 0)
{
MessageBox.Show("Added");
}
else
{
MessageBox.Show("Error");
}
}
catch (Exception ex)
{
MessageBox.Show("Error (ex)");
con.Close();
}
finally
{
con.Close();
clearBoxes();
}
答案 0 :(得分:0)
如果没有例外。我看到了一些可能的问题。
您不需要在catch块中关闭连接。如果发生异常,则finally中的con.Close()将始终执行。
其他问题我无法找到有关西里尔参数名称的任何文档。可能不受支持。
试试这样:
SqlCommand cm = new SqlCommand("INSERT INTO Sports (Спорт) VALUES (@Sport)",con);
cm.Parameters.AddWithValue("@Sport", tbAddSport.Text);
在数据库中编写西里尔字符串名称是不好的做法。在体育表中将名称更改为Sport。
您还确定 clearBoxes();
不会删除可能的例外。