2017-12-12 2 views
0

데이터베이스가 4 개있는 테이블이 있습니다. Techs 테이블을 업데이트하려고합니다. 이렇게하려면 기존 값을 읽고이를 메모리에 저장하고 데이터에 값을 추가해야합니다. 데이터베이스에 값을 다시 업데이트하려고 할 때 내 문제가 발생합니다. 내 업데이트 문에 구문 오류가 있음을 알리는 오류가 발생합니다.Access 2010 데이터베이스 테이블의 필드를 업데이트하십시오.

string userName = "Admin"; 
int closed = 0; 
decimal money = 0.00M; 

string sql = "Select * From Techs WHERE TechName = @uName"; 
cmd.CommandText = sql; 
cmd.Parameters.Add("@uName", OleDbType.VarChar, 50); cmd.Parameters["@uName"].Value = userName; 

cmd.Connection = conn; 
dbReader = MakeReader(sql); 
while (dbReader.Read()) 
{ 
     money = decimal.Parse(dbReader["Money"].ToString()); 
     closed = int.Parse(dbReader["#Closed"].ToString()); 
} 
dbReader.Close(); 

//Proof of sucessful read 
MessageBox.Show(money + ":" + closed); 

string update = "Update Techs SET [email protected], #[email protected] WHERE [email protected]"; 
OleDbCommand updateCmd = new OleDbCommand(update, conn); 
updateCmd.Parameters.AddWithValue("@money", money + 12.00M); 
updateCmd.Parameters.AddWithValue("@closed", closed + 1); 
updateCmd.Parameters.AddWithValue("@uName", userName); 
updateCmd.ExecuteNonQuery(); //Error here 

오류 메시지

유형 'System.Data.OleDb.OleDbException'의 처리되지 않은 예외가 system.data.dll

추가 정보 발생 : 구문 오류를 UPDATE 문에.

string update = "Update Techs SET [Money][email protected], [#Closed][email protected] WHERE [email protected]"; 

개인적으로, 나는 너무 매개 변수의 이름으로 돈을 피할 것,하지만 그 문제를 일으킬 것인지 확실하지 :

답변

0

돈 키워드이며, #Closed 특수 문자를 포함, 모두는 괄호해야합니다.

+0

대단히 고맙습니다. 그게 문제 였고 저는 바보였습니다. –

관련 문제