2017-06-20 14 views
0

私はこのコードを使用しますが、値の疑問符を読み取ろうが、代わりに文字
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のためのDBブラウザ」を使用varcharフィールドに
をアラビア語のテキストを保存するSQLiteのデータベースを持っていますバイナリモードとしてフィールドを表示し、テキストとしてエクスポートしようとすると、データベース
を開いて、私は

DB Browser for SQLite

真の文字が表示されます

これを本当にどのように読むことができますか?

+0

SQLite自体は文字列を変更しません。これはDBブラウザのバグかもしれません。 SQLite Managerのような他のツールは動作しますか? –

+0

@ CL。バイナリとして保存されたこのデータベース文字列では、テキスト – Tavakkoli

+0

@ CLに変換する必要があります。このデータベースのダウンロードリンク:https://ufile.io/qa4ts – Tavakkoli

答えて

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

    } 
関連する問題