2014-04-03 3 views
0

이전 데이터를 바꾸고 이전 데이터에 추가중인 ProductQuantity을 업데이트하여 ProductPrice 열을 업데이트하는 간단한 쿼리가 있습니다.SQL에서는 문제가 없지만 코드에서는 작동하지 않습니다.

SQL에서 쿼리를 작성했지만 올바르게 작동하지만 VS 코드에서는 ProductQuantity을 연결합니다. 나는 제품 수량 20이있는 경우 다음이 후 결과가 20 + 50 = 70해야하지만 코드에서 쿼리를 실행 한 후이 2050

에 값을 업데이트처럼

SQL의 쿼리는 다음과 같습니다

UPDATE ProductLog 
SET ProductQuantity = ProductQuantity + 50, 
    ProductPrice = 20 
WHERE ProductCode = 1 

내 C#에서 쿼리 코드 :

sql = ""; 
sql += "UPDATE ProductLog 
    SET ProductQuantity = ProductQuantity 
    + '" 
    + productQuantity 
    + "', ProductPrice = '" 
    + productPrice 
    + "' WHERE ProductCode = '" 
    + ProductCode 
    + "'"; 

코드 쿼리에서 실수를 찾을 수 없습니다. 이 점을 안내 해주십시오.

테이블의 열의 데이터 형식은 varchar입니다.

+4

작은 따옴표로 숫자를 묶으십시오. – Andrew

+2

먼저 매개 변수가있는 쿼리를 조사해야합니다. [여기를 참고하십시오] (http://blogs.msdn.com/b/sqlphp/archive/2008/09/30/how-and-why-to-use- parameterized-queries.aspx). Andrew의 의견도 참조하십시오. ""가 아닌 ""이 필요합니다. –

+0

감사합니다 @ 앤드류가 나를 위해 일했습니다 :) –

답변

1

Jack,

문자열 연결을 통해 수동으로 쿼리를 생성 할 때 숫자 값을 함께 추가하지 않기 때문입니다. 각각의 변수를 각각의 .ToString() 메소드를 통해 실행하고 결과를 얻은 다음 그 결과를 문자열에 연결합니다. 이 쿼리 (ADO.NET, Linq2SQL 또는 Entity Framework)를 실행하는 방법에 따라 이러한 기술의 메커니즘을 사용하여 수동으로 해당 문자열을 만드는 대신 값을 업데이트하는 것이 좋습니다. 이 방법을 계속 사용하려면 "ProductQuantity"값을 검색하고 값을 50 (또는 원하는 값)으로 추가 한 다음 쿼리를 실행하기 전에 연결을 수행해야합니다.

관련 문제