Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从varchar列读取阿拉伯语文本?_C#_Sqlite - Fatal编程技术网

C# 如何从varchar列读取阿拉伯语文本?

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

我有一个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 = 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;

    }