【发布时间】:2014-11-17 14:32:17
【问题描述】:
我在 SQL Server 2008 的 nvarchar 列中插入法语文本。法语重音字符未正确存储在 SQL DB 中。
string strData = "Accented chars- Les caractères accentués français ";
DataTable dtTemp = new DataTable();
dtTemp.Columns.Add("ID", typeof(string));
dtTemp.Columns.Add("Value", typeof(string));
DataRow dr = dtTemp.NewRow();
dr["ID"] = "100";
dr["Value"] = strData;
dtTemp.Rows.Add(dr);
strSQLCon = GetSQLConnectionString();
using (SqlConnection cn = new SqlConnection(strSQLCon))
{
cn.Open();
using (SqlBulkCopy copy = new SqlBulkCopy(cn))
{
copy.ColumnMappings.Add("ID", "ID");
copy.ColumnMappings.Add("Value", "Value");
copy.DestinationTableName = "MYTABLE";
copy.WriteToServer(dtTemp);
}
}
法语字符未正确存储在 SQL Server 数据库中。 当我进行正常的插入查询时它工作正常。插入 MYTABLEvalues(1 , 'Accented chars-Les caractères accentués français')
请告诉我为什么它不适用于 SQL 批量复制类。需要更改任何设置或修改 C# 代码以正确存储非英文字符。
【问题讨论】:
-
通过中断 dr["Value"] = strData; 进入您的代码;并验证数据是否仍有非英文字符?可能某处的 C# 代码中的编码是错误的。
-
欢迎来到 StackOverflow!请参阅"Should questions include “tags” in their titles?",其中的共识是“不,他们不应该”。
标签: sql-server-2008 datatable sqlbulkcopy