2011-12-20 10 views
1

私はただクエリを実行しており、パラメータの使用を開始しました。ヌル文字列が渡されるまで、すべてがうまくいっていました。以前は正常に動作していました。"name = " + Name名前はnullでもいいかもしれません。パラメータ化されたクエリではパラメータが必要です(ヌル文字列を受け付けません)

これと同じように簡単な方法がありますか?

また、トピックについては、まだ試してみませんが、数値以外のパラメータでも識別できます。それは正しい順序であることを望むことを除いて、識別がない14個の数値パラメータを有する、間違った可能性のある領域である。 (何私は別のものを追加するようになっている場合)

エラーメッセージを:The parameterized query '(@0 nvarchar(5),@1 nvarchar(4),@2 nvarchar(4000),@3 nvarchar(400' expects the parameter '@2', which was not supplied.

パラメータ化クエリ:

  db.Execute("Update User SET Name = @0 , Address1 = @1 , Address2 = @2 , Address3 = @3, Address4 = @4 , Postcode = @5 , Title = @6, " + 
         " Surname = @7 , Forename = @8 , Tel = @9, Fax = @10 , Mobile = @11 , Email = @12 WHERE UserNo = @13", 
         Name, Address1, Address2, Address3, Address4, Postcode, Title, Surname, Forename, Tel, Fax, Mobile, Email, UserNo); 

答えて

1
db.Execute("Update User SET Name = @0 , Address1 = @1 , Address2 = @2 , Address3 = @3, Address4 = @4 , Postcode = @5 , Title = @6, " + 
         " Surname = @7 , Forename = @8 , Tel = @9, Fax = @10 , Mobile = @11 , Email = @12 WHERE UserNo = @13", 
         (Name==null)?"":Name, (Address1==null)?"":Address1, ...); 
+0

わかりましたので、 '名前を行うに似てthatsの? ""?何が:名前ビットは何ですか?私はnull可能なすべてのパラメータに対してこれをしないことを望んでいました。 – Doomsknight

+1

'条件? first_expression:second_expression; 'その[条件付き演算子](http://msdn.microsoft.com/en-us/library/ty67wk28(v=80).aspx)。この場合、 'Name ??と同じですか? "" ' – Reniuz

+1

この表記を読みやすくするために使用しました –

関連する問題