我正在使用此代码从Oracle数据库中读取数据。存储在Oracle中的数据是Navarchar2数据类型,但是当它在gridview中显示时,它看起来像这样。 ?&安培; ? ?????? ??? ?我的数据库Charaacter设置为WE8MSWIN1252
以下是我从Oracle数据库中读取的mY代码。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim con = New OleDbConnection("Data Source=cms; User ID=cms20112012; Password=??????; provider=OraOLEDB.Oracle")
con.open()
Dim cmd As New OleDbCommand("Select to_char(grower_Name) grower from V_GROW", con)
Dim da As New OleDbDataAdapter(cmd)
Dim ds As New DataSet
Dim I As Long
da.Fill(ds, "V_GROW")
GridView1.DataSource = ds
GridView1.DataBind()
For I = 0 To ds.Tables("V_GROW").Rows.Count - 1
Dim grower As String = ds.Tables("V_GROW").Rows(I).Item("grower")
grower = Encoding.ASCII.GetString(Encoding.Unicode.GetBytes(grower))
Label1.Text = grower
Next I
con.close()
End Sub
请有人帮我解决这个问题
答案 0 :(得分:0)
数据库的国家字符集是什么?什么数据类型是GROWER_NAME
?
假设GROWER_NAME
是NVARCHAR2
并且国家字符集是AL16UTF16
TO_CHAR
。您确定阿拉伯数据已正确写入数据库吗?什么
SELECT dump(grower_name, 1016)
FROM v_grow
WHERE rownum < 2
返回(假设每一行都有阿拉伯数据)。
答案 1 :(得分:0)
您的数据库需要使用UTF编码,否则将无法正确存储/检索。设置Oracle数据库时 - 必须将字符集(National和Database)设置为UTF。