【发布时间】:2016-12-27 00:22:06
【问题描述】:
我正在使用带有 C# 的 VS 2008 Express 开发一个 Windows 窗体应用程序项目,其中印地语和英语数据都需要存储在 SQL Server 2008 Express 数据库中。
我创建了一个包含NVARCAR(MAX) 列的表,并使用以下代码将印地语存储到数据库中:
com.CommandText = "INSERT INTO test(name, data) VALUES (@a, @b)";
com.Parameters.Add("@a", SqlDbType.NVarChar).Value = textBox1.Text.Trim();
com.Parameters.Add("@b", SqlDbType.NVarChar).Value = textBox2.Text.Trim();
con.Open();
if (com.ExecuteNonQuery() > 0)
MessageBox.Show("Success");
else
MessageBox.Show("Failed");
con.Close();
代码运行良好,并以印地语保存数据。
下面是我面临的问题:
-
检索时,我在 datagridview 和标签中看到问号而不是印地语字符。作为选择查询的结果,我需要显示印地语。这是我正在使用的代码:
com.CommandText = "SELECT data FROM test WHERE name=@name"; com.Parameters.Add("@name", SqlDbType.NVarChar).Value = textBox1.Text.Trim(); con.Open(); SqlDataAdapter da = new SqlDataAdapter(com); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; SqlDataReader dr = com.ExecuteReader(); if(dr.HasRows) { while(dr.Read()) { textBox2.Text = dr.GetValue(0).ToString(); } } con.Close();注意:印地语比较工作正常,但数据网格视图和标签/文本框中不显示印地语。
注意:我使用的 Windows 7 可能没有安装印地语。另外,我无法安装印地语区域语言,因为它需要许可的 Windows,而且我不能确定每台机器都有许可版本。
此外,上述代码在复制粘贴的印地语上也能正常工作。插入数据时无法输入印地语。
请帮助。
【问题讨论】:
-
您的问题是机器上没有安装语言。据我所知,没有办法解决这个问题。如果机器上没有该语言,您如何期望它显示或允许输入该语言?
-
嗨。我不确定这是语言问题还是我是否安装了印地语。如描述中所述,我可以从浏览器复制印地语,将其粘贴到 .net 文本框中,将其保存在数据库中,然后在印地文文本上使用 Where 子句触发 Select 查询。我可以通过复制粘贴来阅读印地语。只是无法在数据库的标签中显示它。
标签: c# .net sql-server sql-server-2008 unicode