0

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

检查 command.executenonquery() 结果

我尝试并抓住了。

我做了一个直接的 SQL 插入,并且有效。

我检查了连接状态。

所以我没有想法,我希望你们能提供帮助。

哦,代码可能有用:

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

1 回答 1

1

Copy Always意味着每次您开始调试应用程序时,都会将 SDF 文件的新副本从 复制Project DirectoryDataDirectory覆盖已存在的文件。

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

|数据目录|在哪里
Visual Studio - 文件属性

在这里,我假设您通过服务器资源管理器窗口中定义的连接查看存储在项目目录中的文件,检查丢失的数据。检查其连接字符串

于 2013-05-19T10:14:23.683 回答