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ディレクトリを調べます。すべての変更を含むデータベースファイルがあり、ファイルの「変更日」に新しいタイムスタンプが含まれている必要があります。

この動作を変更するには、プロジェクトのデータベースファイルの「出力ディレクトリにコピー」プロパティを変更する必要があります。コピーではなくデータベースで作業する場合は、「コピーしない」に設定します

詳細については、こちらをお読みください。

  1. ローカルデータの概要(MSDNライブラリ)重要

  2. 方法:プロジェクト内のローカルデータファイルを管理する(MSDNライブラリで)

  3. VB.NETはデバッグデータベースのみを更新しているようですが、ライブデータベースに変更を加えるにはどうすればよいですか?(MSDN Socialとして)(C#ではなくVBについてですが、問題ではありません)。

于 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 に答える