2012-10-08 6 views
0

Insert 문에서 where 조건을 사용할 수 있습니까 ???? 나는 이와 같이 코딩했는데, 오류 메시지는 MySQLException이 처리되지 않았다는 것을 보여 주었다. SQL 구문에 오류가있다. 이해가되지 않습니다 WHEREMySQL의 조건문 삽입 문

MySqlCommand cmd1 = new MySqlCommand("INSERT INTO registration(DueAmount) VALUES ('"+textBox5.Text + "') WHERE RegistrationID='"+textBox2.Text+"'",connection); 

답변

1

두 가지 다른 문장을 혼합합니다.

  • 성명 UPDATE 성명은 테이블의 기존 행을 업데이트합니다.
  • 문은 테이블에 새 행을 추가합니다.

나는 UPDATE 문을 사용하고 기존 행을 수정하려고한다고 생각합니다.

MySqlCommand cmd1 = new MySqlCommand(" 
UPDATE Registration Set DueAmount= '"+textBox5.Text 
+ "' WHERE RegistrationID='"+textBox2.Text+"'",connection); 
0

INSERT - 'WHERE RegistrationID ='3 ''라인에서 1. 내 코드 근처에 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인. INSERT은 항상 새 행을 삽입합니다. 해당 레코드가 존재하지 않으면 삽입을 수행하는 REPLACE INTO을 찾고있을 수도 있고 기본 키를 기반으로하는 경우 업데이트를 찾는 것일 수도 있습니다.

1

INSERT의 올바른 구문에는 WHERE 절이 없습니다. 난 당신이 INSERT INTO....SELECT 문을 사용하는 경우

UPDATE registration 
SET DueAmount = 'txt5' 
WHERE RegistrationID = 'txt2' 

당신이 SELECTWHERE을 사용할 수있는 유일한 방법은, 당신은 UPDATE 대신 INSERT을 원하는 생각합니다.

ADO.NET을 사용 중이므로 SQL Injection을 피하기 위해 쿼리를 매개 변수화했는지 확인하고 USING 문을 사용하십시오.

string query = "UPDATE registration 
       SET  DueAmount = @dateAmount 
       WHERE RegistrationID = @RegID" 
using (MySqlCommand cmd1 = new MySqlCommand(query,connection)) 
{ 
    cmd1.CommandType = CommandType.Text; 
    cmd.Parameters.AddWithValue("@dateAmount", textBox5.Text); 
    cmd.Parameters.AddWithValue("@RegID", textBox2.Text); 

    // other codes 
} 
0

은 데이터베이스에 새로운 라인을 넣습니다. 새 줄을 넣을 수 없습니다 WHERE sth는 sth입니다. 하지만 UPDATE 수 있습니다. 희망이 도움이됩니다.

0

UPDATE 문을 사용해야합니다.

THS 구문은 비슷하다 "UPDATE 등록 SET DueAmount = '"+ textBox5.Text + "'WHERE RegistrationID = '"+ textBox2.Text + "'"

0

당신이 시도 할 수 Update

var query = "UPDATE Registration SET DueAmount= $Paremeter1 WHERE RegistrationID = $Paremeter2"; 
var cmd1 = new MySqlCommand(query, connection); 

cmd1 .Parameters.AddWithValue("$Paremeter1", textBox5.Text); 
cmd1 .Parameters.AddWithValue("$Paremeter2", textBox2.Text);