2012-07-10 4 views
1

:저장 UTF8 문자열 C I이 SQL 쿼리가 #

INSERT INTO myTable (myField) VALUES (N'Thermal Oxide: 0 Å to 40 μm') 

을 내가 그렇게 SqlBulkCopy의하여 exeute 할 : 완벽

DataTable myDataTable=myDb.getData("select top 1* from myTable").Clone(); 
DataRow dr = myDataTable.NewRow(); 
dr["myField"] ="N'Thermal Oxide: 0 Å to 40μm'"; 
myDataTable.Rows.Add(dr); 
this.openCon(); 
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(con)) { 
    bulkCopy.DestinationTableName = dt.TableName; 
    bulkCopy.BulkCopyTimeout = 100; 
    bulkCopy.WriteToServer(myDataTable); 
} this.closeCon(); 

그것은 작동하지만, 내 질문은 : 어디에서 'N'프리픽스를 초기화 할 수 있습니까? 어쩌면 필요가 없을지도 모릅니다.

감사합니다,

+2

필요가 없습니다, 당신 말이 맞습니다. 형식 변환은 ADO.Net 드라이버에 의해 처리됩니다. –

답변

1

그냥 chani :

dr["myField"] = "Thermal Oxide: 0 Å to 40μm"; 

N'...'리터럴 TSQL에서 필요합니다; 그러나 데이터 인 (TSQL 아님)을 사용하고 있으므로 걱정할 필요가 없습니다. SqlBulkCopy의 경우에는 원시 형식으로 TSQL이 아닌 서버로 연결됩니다.

더 일반적인 경우 어댑터 또는 ORM의 경우 라이브러리는 매개 변수를 사용하거나 (대부분) 매개 변수를 사용하거나 자체 탈출에 대해 걱정할 것입니다.

SqlBulkCopy을 통해 1 행을 추가하는 것이 과잉이라고주의해야합니다. 그러나 그것은 효과가있다.