2011-12-20 4 views
1

나는 단지 쿼리를 수행 중이며 매개 변수를 사용하기 시작했습니다. 그리고 null 문자열이 전달 될 때까지 모든 것이 훌륭해졌습니다. 전에 제대로 작동했습니다. "name = " + Name 이름은 null 일 수도 있고 null 일 수도 있습니다.매개 변수가있는 쿼리는 매개 변수를 필요로합니다 (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

좋아,'이름을하는 유사 이잖아? ""? 무엇이 : 이름 비트합니까? nullable 매개 변수에이 작업을 수행하지 않기를 바랬습니다. – Doomsknight

+1

'조건? first_expression : second_expression;'그 [조건부 연산자] (http://msdn.microsoft.com/en-us/library/ty67wk28(v=80) .aspx). 이 경우에는 'Name ?? ""' – Reniuz

+1

가독성을 위해이 표기법을 사용했습니다. –

관련 문제