1

数据未从我的 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
4

3 回答 3

2

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

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

要更改此行为,您必须更改项目中数据库文件的“复制到输出目录”属性。如果您想在数据库上工作,而不是在副本上 -将其设置为 "Do not copy"

有关更多信息,请阅读以下内容:

  1. 本地数据概述(在 MSDN 库中)重要

  2. 如何:管理项目中的本地数据文件(在 MSDN 库中)

  3. VB.NET 似乎只更新调试数据库,我如何让它更改实时数据库?(作为 MSDN Social)(关于 VB 而不是 C#,但没关系)。

于 2012-10-07T09:29:34.773 回答
1

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

喜欢这里

或者

也许问题出在插入完成的地方和您照看的地方。

如果是这种情况,请看这里。本文介绍了“复制到输出目录”设置。这可能是你的问题!

于 2012-10-07T08:53:53.070 回答
0
int count = cmd2.ExecuteNonQuery();    
if (count > 0)
{
    MessageBox.Show(" details Entered Successfully");
    clear();
}
else
    MessageBox.Show("Details Not Entered");

con.Close();
于 2013-09-06T05:53:44.920 回答