2014-09-07 1 views
1

cshtml 및 sqlce를 사용하여 WebMatrix 3.0에서 간단한 웹 응용 프로그램을 만들려고합니다. webmatrix 3.0을 사용하여 sqlce update 명령에서 '열 이름이 유효하지 않습니다'오류가 발생했습니다.

"사람은"이러한 열을 (첫 번째는 기본 키와 정체성, 다른 두 허가 NULL 값이다) 포함 테이블 :

ID 
firstmi 
last 

나는 "firstmi를 업데이트 할 수있는 간단한 양식을 시도하고있다 "및"마지막 "필드를 찾습니다.

페이지가로드되면 var id=Request["id"]을 설정합니다. 변수 "personFirstMI"및 "personLast"는 각각 두 개의 텍스트 상자 값으로 설정됩니다. 다음 코드가 실행

:

db.Execute("UPDATE person SET firstmi=personFirstMI, last=personLast WHERE ID=id"); 

다음 오류 결과 :

열 이름이 유효하지 않습니다. [노드 이름 (있는 경우) =, 열 이름 = personFirstMI]

누구든지 내가 뭘 잘못하고 있는지 알아?

"노드 이름"이 무엇을 의미하는지 이해할 수 없습니다. 그리고 왜 내 SQL 구문의 열 이름이 "firstmi"가 아닌 "personFirstMI"로 읽히는지 이해할 수 없습니다. "firstmi"를 "personFirstMI"와 동일한 "ID"가 "id"와 같으면 "ID"행의 "firstmi"필드가 "personFirstMI"와 동일하게 설정되어야합니다.

답변

2

@ 0, @ 1, @ 2, @ 3 등의 형식으로 매개 변수 표식을 사용하고 SQL에서 매번 하나씩 증가시킨 다음 값을 Execute 메서드에 전달해야합니다.

var sql = "UPDATE person SET firstMi = @0, last = @1 WHERE ID = @2"; 
db.Execute(sql, personFirstMI, personLast, id); 

은 ASP.NET 웹 페이지에서 데이터로 작업에 대한 자세한 내용은이 자습서를 참조하십시오 : http://www.asp.net/web-pages/tutorials/data/5-working-with-data

+1

와우. 고맙습니다. 나는 그들이 실행 명령에 나열된 순서대로 증가한다는 것을 이해하지 못했기 때문에 매개 변수와 변수의 약 50 가지 변형을 시도했습니다 (나는 그들이 제출 된 양식에서 요청한 순서대로 나열된 것으로 생각했습니다)). – TJM

관련 문제