복붙노트

[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. ==============================

    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 자체의 일부가 아닙니다.

  2. 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