2017-02-04 1 views
-2

처음에는 USER의 구문이 잘못되어 "[USER]"이어야한다는 오류가 발생했습니다. 이제 나는 ex: {"Invalid column name 'USER'."}을 얻습니다. 나는 무엇을해야할지 모르겠다. 나는 하나의 실수 나 다른 오류를 낳는다.잘못된 열 이름 C# SQL 문

private void btnEDIT_Click(object sender, EventArgs e) 
{ 
    string _ID = lblUserID.Text; // THESE ARE TO COLLECT THE INFORMATION FROM THE TEXTBOXES IN WHICH YOU EDIT THE "USERS" 
    string _user = tbUser.Text.Trim(); 
    string _password = tbPassword.Text.Trim().ToLower(); 
    string _role = tbRole.Text.Trim(); 

    editDataGrid(_user, _password, _role); // THIS IS FOR UPDATING MY GRID AT THE SAME TIME 

    string str = "Update UserValidation SET [USER] = '" + _user + "', PASSWORD = '" + _password + "', ROLE = '" + _role + "' WHERE userID ='" + _ID + "'"; 
    clsDB.InsUpDel(str); // MY METHOD FOR EXECUTING SQL STATEMENTS 
} 
+5

아마 관련이 없습니다 - ** 사용자 코드는 SQL Injection **에 취약합니다. 대신 준비된 문을 사용하십시오. – GurV

+5

@ 관람구. . . 아마 무관계하지. 암호에는 작은 따옴표 나 연속으로 2 개의 하이픈과 같은 다양한 문자가 포함되는 것이 좋습니다. –

답변

1

을 당신은 당신의 쿼리의 범위를 확인할 수의 매개 변수를 사용하는 것이 좋습니다. 에서처럼 UserValidation이 연결 문자열에서 사용중인 선택한 데이터베이스 인스턴스에 있는지 확인하십시오. 또한 해당 열 이름이 USER 또는 일부 변형이 아닌 USER인지 확인하십시오.

+0

당신이 옳았어요, 지금 바보 같아요. 항상 단순한 것입니다. –

0

모든 매개 변수와 열이 올바른지 확인하기 위해 정상적인 쿼리를 실행 한 다음 param을 필드로 바꾸십시오. 3 번 사용자가 쓰는대로 사용자 ID가 문자열인지 확인하십시오.

UPDATE UserValidation 
SET USER = 'xxxx', PASSWORD = 'xxxx', ROLE = 'xxxx' 
WHERE userID ='xxxx'; 

내가 대신 함께 귀하의 요청을 연결 ... 'pram1을'+ + ... + '를 Paramn'..