데이터베이스에서 행을 업데이트하는 중이 오류가 발생합니다. wcf 서비스 응용 프로그램의 업데이트 오류
유형 'System.Data.OleDb.OleDbException'의 예외
이가 system.data.dll에서 발생했지만 사용자 코드에서추가 정보 처리되지 않은 : UPDATE 문에 구문 오류가 발생했습니다.
서비스를 호출하지 못했습니다. 가능한 원인 : 서비스가 오프라인이거나 액세스 할 수 없습니다. 클라이언트 측 구성이 프록시와 일치하지 않습니다. 기존 프록시가 유효하지 않습니다. 자세한 내용은 스택 추적을 참조하십시오. 새 프록시를 시작하거나 기본 구성으로 복원하거나 서비스를 새로 고침하여 복구를 시도 할 수 있습니다.
이 내 업데이트 코드입니다
public string UpdateInventory(string name, int quantity)
{
string strMessage = string.Empty;
string sql;
//Create connection object
OleDbConnection oleConn = new OleDbConnection(connString);
oleConn.Open();
//Update a row
sql = "UPDATE Product SET Quantity Attribute = '" + quantity + "' WHERE Name = '" + name + "'";
OleDbCommand cmd = new OleDbCommand(sql, oleConn);
int rowsAffected = (int)cmd.ExecuteNonQuery();
if(rowsAffected > 0)
{
strMessage = name + "Details updated succesfully";
}
else
{
strMessage = name + "Details not updated successfully";
}
oleConn.Close();
return strMessage;
}
하지만 같은 코드를 사용하여 소수 가격과 문자열 설명을 업데이트합니다. 잘된다. 수량을 업데이트 할 때 코드를 가져 오는 것뿐입니다.
[SQL 주입 경고] (http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - SQL 문을 함께 연결하지 말아야 ** ** SQL 주입을 피하기 위해 ** 매개 변수화 된 쿼리 **를 사용하십시오. –
공간을 처리하기 위해'Quantity Attribute' 주위에 대괄호를 사용하십시오. - UPDATE Product SET [Quantity Attribute]' 구문 오류의 가장 큰 이유를 수정합니다. 그리고 당신이있는 동안 @marc_s가 말했던대로하고 매개 변수화 된 쿼리를 사용하도록 코드를 변경하십시오. – Tim