Linq to SQL插入商标“™”符号

时间:2013-01-29 18:05:02

标签: c# sql-server-2008 linq-to-sql

我想在MSSQL 2008中插入带有商标符号(™)的字符串。

当我在搜索问题时,我发现了一些基于SQL的解决方案:

修剪符号:

SELECT REPLACE('Microsoft™',char(153),'')

仅插入符号:

INSERT mytable(col1) VALUES (char(153))

此外,我已阅读this问题,但我无法找到解决方案。

有没有办法使用 Linq to SQL 插入带有符号的单词(如“Microsoft™”)?

我在nvarchar专栏上进行了试验。

修改

这是我的表:

Sellers table

这是我在dbml上的映射:

SellerName property

这是我的代码:

var db = new DBDataContext();

Seller seller;
if(!db.GetTable<Seller>().Any(s => s.Username == username))
{
    seller = new Seller {Username = username, SellerName = name, FeedbackCount = feedback};
    db.Sellers.InsertOnSubmit(seller);
    db.SubmitChanges();
}

这是我想要作为名称插入的内容:B♥Râ™

这是生成的SQL:

INSERT INTO [dbo].[Sellers]([Username], [SellerName], [FeedbackCount])
VALUES (@p0, @p1, @p2)

SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input VarChar (Size = 8000; Prec = 0; Scale = 0) [testuser]
-- @p1: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [B♥Râ™]
-- @p2: Input Int (Size = -1; Prec = 0; Scale = 0) [886]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.17929

3 个答案:

答案 0 :(得分:2)

你应该能够插入它。 C#字符串与nvarchar列一样是unicode。您是否尝试过插入它?

答案 1 :(得分:1)

您是否尝试使用ASCII值(Alt + 0153)作为“tm”符号?

答案 2 :(得分:1)

你的文字不是unicode;尝试:

SELECT REPLACE(N'Microsoft™',N'™','')

INSERT mytable(col1) VALUES (N'™')

(提示:他们工作)