0

データを更新して既存のデータベーステーブルに挿入しようとしています。エラーは発生していませんが、実際のテーブルデータは更新されていません。

これは、行の1つを更新するための私のコードです。

 using (SqlConnection con = new SqlConnection(connection))
 {
            con.Open();

            SqlTransaction t = con.BeginTransaction(); 
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.Transaction = t;
            cmd.CommandText = "Update tblName set PersonName = 'Wes' where PersonID = 2";
            int i = cmd.ExecuteNonQuery();

            t.Commit();

            Console.WriteLine("change: "+i);
         }

出力は

change: 1. 

実行時に変更が発生していますが、実際のテーブルデータは同じです。何か案は?

4

1 に答える 1

0

ユーザーインスタンスとAttachDbFileName=アプローチ全体に欠陥があります-せいぜい!Visual Studioは.mdfファイルApp_Dataを(出力ディレクトリから.\bin\debug)コピーします。おそらく、inINSERTに対しては問題なく動作しますが、最終的には間違った.mdfファイル(in )を見ているだけです。.mdf.\bin\debugApp_Data

このアプローチを使い続けたい場合は、myConnection.Close()呼び出しにブレークポイントを設定してみてください。次に.mdf、SQL Server MgmtStudioExpressを使用してファイルを調べてください。データがそこにあることはほぼ間違いありません。

私の意見では、本当の解決策は

  1. SQL Server Expressをインストールします(とにかくすでにそれを実行しています)

  2. SQL Server ManagementStudioExpressをインストールします

  3. SSMS Expressでデータベースを作成し、論理名を付けます(例Testing

  4. 論理データベース名(サーバー上で作成するときに指定)を使用して接続します。物理データベースファイルやユーザーインスタンスをいじらないでください。その場合、接続文字列は次のようになります。

    Data Source=.\\SQLEXPRESS;Database=Testing;Integrated Security=True
    

    そして他のすべては以前とまったく同じです...

于 2013-01-04T16:05:54.110 に答える