0

我创建了一个存储过程,如下所示:

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;
}

当我看到我的数据库表时,其中的值ContentText是英文的。我怎样才能改变这个?

4

1 回答 1

1

字体的目的是什么?

如果出于显示目的将英文字符映射到外文字符集(据我所知),那么数据库将存储英文字符,因为它们是正在输入的内容。

我输入hello了字体预览,可以看到字母有两个相同的字符l,然后是o.

实际上,您所做的只是在显示时将输入的英文字符替换为外来字符集。底层字符仍然是英文。

要存储 Unicode 字符,您必须在输入控件中实际输入 Unicode 字符。

于 2012-12-27T12:20:08.523 回答