Salva stringa UTF8 da SqlBulkCopy c #

c# nvarchar sql sqlbulkcopy utf-8

Domanda

Ho questa query Sql:

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

e voglio farlo da SqlBulkCopy in questo modo:

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();

È un lavoro perfetto, ma la mia domanda è: dove posso inizializzare il prefisso "N"? e forse non ce n'è bisogno?

Grazie, chani

Risposta accettata

Appena:

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

L' N'...' è richiesto solo per i letterali in TSQL; ma dal momento che stai prendendo dati (non TSQL) non devi preoccuparti di questo. Nel caso di SqlBulkCopy , andrà al server in formato raw, non direttamente come TSQL.

Nel caso più comune di un adattatore o di un ORM, la libreria utilizzerà (molto probabilmente) parametri o si preoccuperà dell'esclusione stessa.

Va anche notato che aggiungere 1 riga tramite SqlBulkCopy è eccessivo. Ma dovrebbe funzionare.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché