查询完成后,无法向数据库添加行

时间:2015-03-08 20:47:56

标签: c# sql-server winforms

我试图在数据库中添加一行,但似乎有些错误。连接没问题,查询也很好但按下按钮后没有添加行。

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

1 个答案:

答案 0 :(得分:0)

如果没有例外。我看到了一些可能的问题。

您不需要在catch块中关闭连接。如果发生异常,则finally中的con.Close()将始终执行。

其他问题我无法找到有关西里尔参数名称的任何文档。可能不受支持。

试试这样:

SqlCommand cm = new SqlCommand("INSERT INTO Sports (Спорт) VALUES (@Sport)",con);
cm.Parameters.AddWithValue("@Sport", tbAddSport.Text);

在数据库中编写西里尔字符串名称是不好的做法。在体育表中将名称更改为Sport。

您还确定 clearBoxes(); 不会删除可能的例外。