我想在MSSQL 2008中插入带有商标符号(™)的字符串。
当我在搜索问题时,我发现了一些基于SQL的解决方案:
修剪符号:
SELECT REPLACE('Microsoft™',char(153),'')
仅插入符号:
INSERT mytable(col1) VALUES (char(153))
此外,我已阅读this问题,但我无法找到解决方案。
有没有办法使用 Linq to SQL 插入带有符号的单词(如“Microsoft™”)?
我在nvarchar专栏上进行了试验。
修改
这是我的表:
这是我在dbml上的映射:
这是我的代码:
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
答案 0 :(得分:2)
你应该能够插入它。 C#字符串与nvarchar
列一样是unicode。您是否尝试过插入它?
答案 1 :(得分:1)
您是否尝试使用ASCII值(Alt + 0153)作为“tm”符号?
答案 2 :(得分:1)
你的文字不是unicode;尝试:
SELECT REPLACE(N'Microsoft™',N'™','')
和
INSERT mytable(col1) VALUES (N'™')
(提示:他们工作)