1

私は自分のプロジェクトに asp.net を使用しており、次のコードを使用していますが、正しく動作していません

 SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\WEB_PROJECT\\App_Data\\ASPNETDB.MDF;Integrated Security=True;User Instance=True");
 SqlCommand cmd = new SqlCommand();
 cmd.Connection = con;
 con.Open();
 cmd.CommandText = "UPDATE info SET fname = @fn, lname = @fl, phone= @ph, recoveryq=@rq, recoverya=@ra WHERE username = @un";  

 cmd.Parameters.AddWithValue("fn", TextBox3.Text);
 cmd.Parameters.AddWithValue("fl", TextBox4.Text);
 cmd.Parameters.AddWithValue("ph", TextBox5.Text);
 cmd.Parameters.AddWithValue("rq",TextBox6.Text);
 cmd.Parameters.AddWithValue("ra",TextBox2.Text);
 cmd.Parameters.AddWithValue("un",line);        
 cmd.ExecuteNonQuery();
 con.Close();

アドバイスplzz im混乱!!! :(

4

2 に答える 2

3

このサイトで以前に述べたように、ユーザー インスタンス全体と AttachDbFileName=のアプローチには欠陥があります。せいぜい! Visual Studio は.mdfファイルをコピーし、おそらく問題なく動作しますが、最終的に間違ったファイルUPDATEを見ているだけです!.mdf

このアプローチに固執したい場合は、con.Close()呼び出しにブレークポイントを設定してから、 .mdfSQL Server Mgmt Studio Express でファイルを調べてください。データがそこにあることはほぼ確実です。

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

  1. SQL Server Express をインストールします (とにかく、既に完了しています)。

  2. SQL Server Management Studio Express をインストールする

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

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

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

    そして、それ以外はすべて以前とまったく同じです...

于 2012-06-20T12:18:06.537 に答える
2

cmd.Parameters.AddWithValue("@fn", TextBox3.Text);

'@' と共にパラメーター名を指定する必要があります。

于 2012-06-20T09:57:18.473 に答える