数据未插入数据库中

时间:2012-10-07 08:50:23

标签: c# database-connection sql-server-ce

数据未从我的C#应用​​程序插入数据库,但没有找到错误或异常。但我可以使用select语句和数据读取器从数据库中读取数据。

  private void button2_Click(object sender, EventArgs e)
    {
        string conString = Properties.Settings.Default.dbConnectionString;

        // Open the connection using the connection string.
        SqlCeConnection con = new SqlCeConnection(conString);
        con.Open();

        // Insert into the SqlCe table. ExecuteNonQuery is best for inserts.

        SqlCeCommand com = new SqlCeCommand("INSERT INTO test VALUES('num')", con);

        com.CommandType = CommandType.Text;
        // com.Parameters.AddWithValue("@num", "num");
        com.ExecuteNonQuery();
        MessageBox.Show("ok");

    }

按下按钮后会显示消息框。但是没有插入数据。

连接字符串:

Data Source=d:\manu\smalldb\smalldb\db.sdf

3 个答案:

答案 0 :(得分:2)

您的应用程序正在处理数据库文件的副本。

要确保这是问题的根源 - 请查看项目的bin / Debug目录。应该有一个包含所有更改的数据库文件,文件应该在“修改日期”中有新的时间戳。

要更改此行为,您必须更改项目中数据库文件的“复制到输出目录”属性。如果您想处理数据库,而不是复制 - 将其设置为“不要复制”

欲了解更多信息,请阅读:

  1. Local Data Overview (at MSDN Library)重要

  2. How to: Manage Local Data Files in Your Project (at MSDN Library)

  3. VB.NET only seems to update the debug database, how do I have it make changes to the live one? (as MSDN Social)(关于VB不是C#,但没关系)。

答案 1 :(得分:1)

也许你必须做一些提交来验证交易

HERE

OR

问题可能出在插入完成的地方和你照看的地方。

如果是这样,请查看HERE。本文讨论“复制到输出目录”设置。这可能是你的问题!

答案 2 :(得分:0)

int count = cmd2.ExecuteNonQuery();    
if (count > 0)
{
    MessageBox.Show(" details Entered Successfully");
    clear();
}
else
    MessageBox.Show("Details Not Entered");

con.Close();