[SQL] 테이블에 레코드를 삽입 할 때 작은 따옴표로 문자열 필드는 오류의 원인이
SQL테이블에 레코드를 삽입 할 때 작은 따옴표로 문자열 필드는 오류의 원인이
나는 코드 아래에 있습니다 :
query = "insert into tblB2B_OrderStatusTopStillInRB (LSRNbr, ShipName, Units, DroppedInRB, EPT, Status, OnTimeStatus, ShipVia, DroppedInRB_Order, RealEPT) ";
query += "values ('"
+ ListOrdStatusTopInRB[i].LSRNbr + "','"
+ ListOrdStatusTopInRB[i].ShipName + "',"
+ ListOrdStatusTopInRB[i].Units + ",'"
+ ListOrdStatusTopInRB[i].DroppedInRB + "','"
+ ListOrdStatusTopInRB[i].EPT + "','"
+ ListOrdStatusTopInRB[i].Status + "','"
+ ListOrdStatusTopInRB[i].OnTimeStatus + "','"
+ ListOrdStatusTopInRB[i].ShipVia + "','"
+ ListOrdStatusTopInRB[i].DroppedInRB_Order + "','"
+ ListOrdStatusTopInRB[i].RealEPT + "')";
cmd.CommandText = query;
cmd.ExecuteNonQuery();
국제 마스크 투명도를 : 그리고 난 그냥 ShipName는 작은 따옴표를 사용하여 값을 가질 때, 예를 들어, INSERT 문에 오류를 일으키는 것을 깨달았다.
문자열에서 작은 따옴표를 제거하지 않고, 그 문제를 해결하는 방법이 있습니까?
나는 다음을 사용하려고하지만 일을하지 않았다되었다 :
cmd.CommandText = @query
+ @ListOrdStatusTopInRB[i].ShipName + "',"
어떤 아이디어?
해결법
-
==============================
1.예 - 사용 SQL 대신 매개 변수화. 직접이처럼 SQL에서 변수 값을 사용해서는 안됩니다. 그것은 SQL 더 읽어 혼란하게 일반적으로 SQL 주입 공격, 원인 변환 기이을 허용 할 수 있습니다.
예 - 사용 SQL 대신 매개 변수화. 직접이처럼 SQL에서 변수 값을 사용해서는 안됩니다. 그것은 SQL 더 읽어 혼란하게 일반적으로 SQL 주입 공격, 원인 변환 기이을 허용 할 수 있습니다.
매개 변수화 된 SQL의 예를 들어 SqlCommand.Parameters 설명서를 참조하십시오.
기본적으로, 아이디어는 당신의 SQL은, 예를 들어 매개 변수에 대한 참조를 포함한다는 것입니다
INSERT INTO SomeTable(Foo, Bar) VALUES (@Foo, @Bar)
다음은 별도로 @foo 및 @Bar에 대한 값을 지정합니다. 다음 값은 그래서 그들은 SQL 내에서 특별한 의미를 갖는 것 문자가 포함되어 있는지 여부를 중요하지 않습니다는 SQL 자체의 일부가 아닙니다.
from https://stackoverflow.com/questions/19326563/string-field-with-single-quotation-mark-is-causing-an-error-when-inserting-recor by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 대량로드 할 수 없습니다. 파일 "C : \ data.txt로"존재하지 않는 (0) | 2020.05.29 |
---|---|
[SQL] 날짜와 SQL 삽입 문을 루핑 (0) | 2020.05.29 |
[SQL] 널 (null) 값 vb.net에 대한 바운드 데이터 테이블을 확인 (0) | 2020.05.29 |
[SQL] SQL 서버에서 동적 SQL 피벗 (0) | 2020.05.29 |
[SQL] 여러 행을 기준으로 테이블에서 MYSQL 선택 (0) | 2020.05.29 |