오류가내가 SQL 서버 2008 데이터베이스에 데이터를 입력와 이상한 문제에 봉착
System.Data.SqlClient.SqlException가 처리되지 않은 HRESULT는 것을 저에게 말한다 = -2146232060 메시지 = '@comments'변수 이름이 이미 선언되었습니다. 변수 이름은 쿼리 일괄 처리 내에서 고유하거나 절차를 저장해야합니다. 스칼라 변수 "@employeeId"를 선언해야합니다.
문제는 ... 둘 다 선언했는데 뭔가 빠졌습니까?
public bool Addfix(DateTime receiveDate, int clientId, int modelID, string problem, string comment, int employeeId, float priceOffer, float price)
{
_cmd.CommandText ="INSERT INTO fixes(receiveDate, clientId, modelID, problem, comments, employeeId, priceOffer, price, returned) VALUES (@receiveDate, @clientId, @modelID, @problem, @comments, @employeeId, @priceOffer,@price,@returned);";
_cmd.Parameters.Add("@receiveDate", SqlDbType.Date).Value = receiveDate;
_cmd.Parameters.AddWithValue("@clientId", clientId);
_cmd.Parameters.AddWithValue("@modelID", modelID);
_cmd.Parameters.AddWithValue("@problem", problem);
_cmd.Parameters.AddWithValue("@comments", comment);
_cmd.Parameters.AddWithValue("@employeeId", employeeId);
_cmd.Parameters.AddWithValue("@priceOffer", priceOffer);
_cmd.Parameters.AddWithValue("@price", price);
_cmd.Parameters.AddWithValue("@returned ", 0);
_con.Open();
_cmd.ExecuteNonQuery();
_con.Close();
return true;
}
[AddWithValue()를 이미 사용 중지 할 수 있습니까?] (http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithue-already)를 확인하십시오. /)를 사용하고'.AddWithValue()'사용을 중지하십시오. 예기치 않은 놀라운 결과를 초래할 수 있습니다 ... –
이 예외를 처음으로 제공합니까, 아니면이 메서드를 두 번째로 호출할까요? 'AddWithValue' 문제 외에도 명령을 재사용하려면 매개 변수를 지워야합니다 :'_cmd.Parameters.Clear()'. SqlCommand를 변환으로 재사용 할 때 [Parameters.Clear를 호출해야합니까?] (http://stackoverflow.com/questions/14374541/should-i-call-parameters-clear-when-reusing-a-sqlcommand-with)도 참조하십시오. - 전환). – CodeCaster
@ CodeCaster 처음 시도 할 때 ... 작동하는지 확인하고 오류가 발생하는지 확인하기 위해 함수를 테스트하십시오. – Iakovl