我对这个问题的网络非常好,我只是画了一个空白,因为建议的一切都已经到位。LINQ to SQL not unicode
我有以下代码:
if (docid == 155)
{
docbody = "安全工作";
}
var matchedContentBody = (from cb in dc.GetTable<tbl_content_body>()
where cb.c_id == docid
select cb).SingleOrDefault();
try
{
matchedContentBody.contentBody = docbody;
dc.SubmitChanges();
}
catch (Exception ex)
{
throw ex;
}
领域contentBody是(而且一直)为nvarchar(最大)。当我读到这个数据时,在一个带有charset utf-8的网页上,我只看到了?
据我所知,Unicode字段类型否定了任何需要指出它是Unicode数据。
在此任何指导将不胜感激。
您检查了您的dbml文件以确保类型是'nvarchar'吗? – dotctor
是的,dbml说:[global :: System.Data.Linq.Mapping.ColumnAttribute(Storage =“_ contentBody”,DbType =“NVarChar(max)”,UpdateCheck = UpdateCheck.Never)] –
如果我创建一个非常简单经典的ASP页面(UTF-8字符集)与原生的SQL和数据的文本区域,我可以将数据保存到数据库并正确显示回来。所以我认为DB上的字段可以处理Unicode。我正在努力的应用程序是一个Windows窗体应用程序(只是作为一个桌面实用程序,用于导入数据) –