助けてください。私はここでいくつかの話題を読んでいますが、私の質問に答えは出ません。 BLOBタイプのSQLite DBにイメージを置いて再試行しますが失敗しました。SQLiteデータベースに画像を入れて再スキャンする
だから、私はいくつかの画像(またはその他のファイル)のバイト[] rawDocを取得 rawDoc = File.ReadAllBytes(openFileDialog.FileName);
を使用。私はその
byte[] imageBytes = Convert.FromBase64String(testRaw);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
pictureBox1.Image = Image.FromStream(ms, true);
でrawDocを確認しようとした場合、その後
String dbConnection = "Data Source=dbase.s3db";
SQLiteConnection cnn = new SQLiteConnection(dbConnection);
cnn.Open();
String sql = String.Format("INSERT INTO registry" +
"(NameDoc, YearDoc, MonthDoc, DayDoc, RawDoc) VALUES" +
"('{0}', '{1}', '{2}', '{3}', '{4}')",
txtNameDoc.Text, numUDYear.Value, numUDD.Value, numUDD.Value, Convert.ToBase64String(rawDoc));
私は、通常の画像を取得します。しかし、もし私がSQLiteベースのデータでそれをしようとすると
SQLiteCommand myCommand = new SQLiteCommand(query, cnn);
SQLiteDataReader myDataReader = myCommand.ExecuteReader();
string raw = null;
while (myDataReader.Read())
{
raw += myDataReader["RawDoc"].ToString().Trim();
}
myDataReader.Close();
byte[] imageBytes = Convert.FromBase64String(raw);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
imageBox imgbox = new imageBox();
PictureBox picBox = new PictureBox();
picBox.Image = Image.FromStream(ms, true);
imgbox.Controls.Add(picBox);
imgbox.Show();
私はエラーが発生します:FormatException。文字列Base-64に無効な文字があります。どうして?
ありがとう!
Mmm ....私はあまりにも多くの変換を私には、何かが間違っている – Tigran