我创建了一个存储过程,如下所示:
CREATE PROCEDURE spIns_nav_Content
@CategoryID nVarChar(50),
@ContentText nVarChar(Max)
AS
INSERT INTO dbo.nav_Content(CategoryID, ContentText, Active)
VALUES (@CategoryID, @ContentText, 1)
在我的ASP.net应用程序中,我有一个文本框和一个按钮。我的aspx页面如下所示:
<div>
<asp:Label ID="Label1" runat="server" Text="Text here"></asp:Label>
<asp:TextBox ID="txtContent" runat="server" Font-Names="ML-TTKarthika"></asp:TextBox>
<asp:Button ID="btnUpload" runat="server" Text="Upload" onclick="btnUpload_Click" />
<asp:Label ID="lblContent" runat="server" Font-Names="ML-TTKarthika"></asp:Label>
</div>
点击btnUpload
时,我需要将txtContent
中的非英语(马拉雅拉姆语)文本作为unicode字符保存到数据库中。点击事件如下:
protected void btnUpload_Click(object sender, EventArgs e) {
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["TestMalayalamConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
con.Open();
SqlCommand sqlCmd = con.CreateCommand();
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "spIns_nav_Content";
sqlCmd.Parameters.Add("@CategoryID", SqlDbType.NVarChar, 50).Value = "Rashriyam";
sqlCmd.Parameters.Add("@ContentText", SqlDbType.NVarChar, -1).Value = txtContent.Text;
sqlCmd.ExecuteScalar();
con.Close();
lblContent.Text = txtContent.Text;
}
当我看到我的db表时,ContentText
中的值是英文的。我怎么能改变这个?
答案 0 :(得分:1)
字体的用途是什么?
如果它将英文字符映射到外国字符集用于显示目的(据我所知),则DB将存储英文字符,因为它们是输入的内容。
我在字体预览中输入了hello
,可以看到字母l
中有两个字符相同,然后是o
。
实际上,您所做的只是在显示时间将输入的英文字符替换为外来字符集。基础角色仍然是英语。
要存储Unicode字符,您必须在输入控件中实际输入unicode字符。