2011-06-23 20 views
0

以下のスクリーンショットで同様のエラーが発生します。私の質問は、テーブルにテキストボックスの中にそれらの情報を書き込もうとすると、エラーが出ます。私は間違っていますか? ちなみに、私はあなたがあなたのクエリ内のテキスト値を中心に単一引用符を配置する必要があり、2008年 enter image description hereSqlExceptionが処理されていません

private void btnprnsave_Click(object sender, EventArgs e) 
    {   
     SqlConnection conn = DBConfigs.DataCon(); 
     SqlCommand record = new SqlCommand ("insert into dbo.PersonalInformationTable (PersonalName,PersonalSurname,PersonalEGN) values ("+txtPrnName.Text+","+txtPrnSurName.Text+","+txtPrnEgn.Text+")", conn); 
     record.ExecuteNonQuery(); 
     conn.Close(); 
    } 
+2

昨日DBA.SEで同じことを尋ねました。 http://dba.stackexchange.com/q/3433/630あなたは、あなたの問題のための解決策と、「ベストプラクティス」-1を持っています。 – gbn

答えて

1
  1. フォーマット正しくSQL

  2. Chekcデータベースファイルが存在する場合(tesxtual値または使用パラメータの周りの単一引用符)。

  3. 同じデータベースファイルを異なる2つの異なるSQL Server(Express)インスタンスに接続できないため、SQL Server Management Studio Expressでデータベースファイルを同時に添付しないでください。

  4. データベース接続を必ず閉じてください。このコードは、Dispose()メソッドが呼び出されるコードブロック(例外または正常なプログラムフロー)がどのように残されているかに関係なく、usingステートメントで達成されます。これにより、常に接続が切断され、接続リークが回避されます。

0

SQL Server Expressを使用しています。さらに良い;パラメータを使用してください...
上記のように例外が発生する可能性がありますが、それ自体ではクエリーが正しくありません。

1

これは少し難しいですが、必要なようですinsert文で値をエスケープします。

"insert into dbo.PersonalInformationTable (PersonalName,PersonalSurname,PersonalEGN) values ('"+txtPrnName.Text+"','"+txtPrnSurName.Text+"','"+txtPrnEgn.Text+"')", conn); 
関連する問題