-1

このコードを使用してデータベースに新しい行を追加しようとしていますが、新しい行は保存されますが、プログラムを閉じて再度開くと、行が消えてしまいます。

private void Dep_Add_Click(object sender, EventArgs e)
{
   try
   {
       SqlCommandBuilder cb = new SqlCommandBuilder(Dep_da);

       DataRow dRow = Dep_ds.Tables["Department"].NewRow();
       dRow[1] = Dep_Name.Text;
       Dep_ds.Tables["Department"].Rows.Add(dRow);

       Dep_MaxRows = Dep_MaxRows + 1;
       Dep_inc = Dep_MaxRows - 1;

       Dep_da.Update(Dep_ds,"Department");
   }
   catch (Exception exceptionObject)
   {
      MessageBox.Show(exceptionObject.Message);
   }

だから誰かが私を助けてくれることを願っています

4

3 に答える 3

1

あなたは多くの文脈情報を与えないので、これは少し推測です...

Visual Studio内からこれを実行し、ローカル(接続された)データベースに書き込む場合、プログラムを実行するたびに、ローカルデータベースがプロジェクトからbinフォルダーにコピーされるため、各実行を次のように開始します。データベースの同じコピーで、最後の実行で変更されたデータベースを上書きします。

エクスプローラーまたはコマンドラインからexeを実行することで、これが当てはまるかどうかをテストできるはずです。

于 2011-07-02T20:24:45.453 に答える
1

コードは少し異なりますが、ここですでにこの質問をしました。

私はあなたの前の質問にあなたに答えを与えました-それはSqlDataAdapter.Updateコマンドを使用することです。ここでそれを行っていますが、残りのコードを投稿しなかったため、何かを変更したかどうかはわかりません。

于 2011-07-02T20:27:39.717 に答える
0

おそらくDataSet.Tables[0].AcceptChanges()メソッドを呼び出しますか?

于 2011-07-04T06:56:31.250 に答える