[C#]不在DB中插入,确实给出了1的执行查询

时间:2013-05-19 09:58:31

标签: c# sql error-handling insert

我正忙于一个项目,我必须在Visual Studio 2010 express中创建的紧凑SQL db文件中插入一些数据。我做的每一项检查都说插件正确完成,只有一个缺点,每次检查数据库时都没有插入数据。 我试过了:

检查command.executenonquery()结果

我试着抓住了。

我做了一个直接的SQL插入,这很有用。

我检查了Connectionstate。

所以我没有想法,我希望你们能帮忙。

哦,代码可能有用:

    private void butAddOilBlend_Click(object sender, EventArgs e)
    {
        ConnectToDB Connection = new ConnectToDB();
        try
        {
            Connection.Connect.Open();

            string SQLCommand = "INSERT INTO OilBlendsTable(oilblendsName, oilblendsDescription) VALUES(@OilBlendsName, @OilBlendsDescription)";

            using (SqlCeCommand Command = new SqlCeCommand(SQLCommand, Connection.Connect))
            {
                Command.Parameters.AddWithValue("@OilBlendsName", tbNameOilBlend.Text);
                Command.Parameters.AddWithValue("@OilBlendsDescription", tbOilBlendDescription.Text);

                Command.ExecuteNonQuery();
                int AffectedRows = Command.ExecuteNonQuery();

                MessageBox.Show(AffectedRows.ToString());
            }

            lblFinalWord.Text = "You just added a new blend named: " + tbNameOilBlend.Text;
        }
        catch (SqlException ex)
        {
            MessageBox.Show(ex.Message.ToString());
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString());
        }
        finally
        {
            Connection.Connect.Close();
        }
    }

1 个答案:

答案 0 :(得分:1)

Copy Always表示每次开始调试应用程序时,SDF文件的全新副本将从Project Directory复制到DataDirectory,覆盖已存在的文件。

winforms应用中的DataDirectory是BIN \ DEBUG 您的插入进入该数据库(BIN \ DEBUG \ OilDB.sdf) 在下一次运行时,这些插入物将丢失 您应该使用Copy If Newer

Where is the |DataDirectory|
Visual Studio - File Properties

在这里,我假设您通过Server Explorer窗口中定义的连接检查缺少的数据,查看存储在项目目录中的文件。检查其连接字符串