C# 如何从varchar列读取阿拉伯语文本?
我有一个sqlite数据库,它将阿拉伯语文本存储在C# 如何从varchar列读取阿拉伯语文本?,c#,sqlite,C#,Sqlite,我有一个sqlite数据库,它将阿拉伯语文本存储在varchar字段 我使用了这段代码,但当尝试读取值时,问号将显示为字符 SQLiteConnection con = new SQLiteConnection("Data Source=Quran.sqlite;Version=3;"); SQLiteCommand cmd = new SQLiteCommand("SELECT Qtxt FROM tblQTxt'", con); con.Open(); SQLiteDataReader dr
varchar
字段我使用了这段代码,但当尝试读取值时,问号将显示为字符
SQLiteConnection con = new SQLiteConnection("Data Source=Quran.sqlite;Version=3;");
SQLiteCommand cmd = new SQLiteCommand("SELECT Qtxt FROM tblQTxt'", con);
con.Open();
SQLiteDataReader dr = cmd.ExecuteReader();
dr.Read();
textBox1.Text = dr["Qtxt"].ToString();
dr.Close();
con.Close();
我使用“SQLite数据库浏览器”打开数据库当尝试以二进制模式查看字段,然后以文本形式导出时,我将看到真实字符
SQLiteConnection con = new SQLiteConnection("Data Source=Quran.sqlite;Version=3;");
SQLiteCommand cmd = new SQLiteCommand("SELECT Qtxt FROM tblQTxt'", con);
con.Open();
SQLiteDataReader dr = cmd.ExecuteReader();
dr.Read();
textBox1.Text = dr["Qtxt"].ToString();
dr.Close();
con.Close();
怎样才能真正读懂这个领域
SQLite本身不会更改字符串;这可能是DB浏览器的错误。像SQLite Manager这样的其他工具是否有效?@CL。在这个数据库中,字符串保存为二进制,并且必须转换为text@CL.下载数据库的链接:“另存为二进制”是什么意思?显示代码@CL.正如您在右侧面板视图中的图像中所看到的,该字段为二进制模式,当我导出为文本文件时,将真正查看字符。
SQLiteConnection con = new SQLiteConnection("Data Source=Quran.sqlite;Version=3;");
SQLiteCommand cmd = new SQLiteCommand("SELECT Qtxt2 FROM tblQTxt where Sore='1' and Aye='1'", con);
SQLiteDataAdapter dAdapter = new SQLiteDataAdapter(cmd);
DataSet dSet = new DataSet();
dAdapter.Fill(dSet);
if (dSet.Tables[0].Rows.Count == 1)
{
Byte[] data = new Byte[0];
data = (Byte[])(dSet.Tables[0].Rows[0]["Qtxt2"]);
MemoryStream ms = new MemoryStream();
ms.Write(data, 0, data.Length);
ms.Position = 0;
StreamReader reader = new StreamReader(ms,Encoding.GetEncoding(1256));
string text = reader.ReadToEnd();
textBox1.Text = text;
}