0

イメージを SQL Server データベースに保存したいと考えています。画像をバイト配列に変換しましたが、データベースの列のデータ型は ですvarbinary(MAX)が、型を変更しても機能しませんでしたImageが、同じ結果が得られました。

私はスタックオーバーフロー、コードプロジェクト、コードの夢から多くのリンクをたどりましたが、データベースにバイト配列を挿入するための私のコードがある私の解決策を見つけることができませんでした

string query = @"INSERT INTO myTable (ID, byteArray, DateTime) VALUES (@ID, @byteArray, @datetime)";

try
{
      command = new SqlCommand(query, base.conn);
      command.Parameters.AddWithValue("@ID", id);
      command.Parameters.AddWithValue("@byteArray", ss); // ss is byte[] from arguments
      command.Parameters.AddWithValue("@datetime", DateTime.Now);

      base.Open();
      if (command.ExecuteNonQuery() > 0)
      {
            base.Close();
            return true;
      }
      else
      {
             base.Close();
             return false;
      }
}
catch (SqlException ex)
{
      base.Close();
      return false;
}

私もそれを試しました

command = new SqlCommand(query, base.conn);
command.Parameters.Add("@ID", id);
command.Parameters.Add("@byteArray", ss); // ss is byte[] from arguments
command.Parameters.Add("@datetime", DateTime.Now);

そしてそれがデータベースに保存するもの

3列目は画像タイプで、バイト配列を送信しています

しかし、それは<Binary data>何ですか?

4

1 に答える 1

1

SQL Server Management Studio は<binary data>、一部のバイナリ データ (画像など) がその列に格納されている場合に表示されます。これは設計どおりに動作します。

SQL Server Management Studio で画像自体を実際に表示することはありません。あなたのコードは問題なく動作すると確信しています.Management Studioができることに対するあなたの期待だけが高すぎます....

于 2014-04-15T18:56:00.647 に答える