5

SQL Serverデータベースに画像を保存しようとしていますが、どのデータ型を使用する必要がありますか?

以下code aspx.csでは、リクエストの入力ストリームからすべてのバイトを読み取ってデータベースに保存しようとしていますが、byte[]配列がテーブルで適切に更新されていません。私は何かが足りないのですか?

protected void Page_Load(object sender, EventArgs e)
{
        Request.InputStream.Position = 0;

        byte[] Contents = new byte[Request.InputStream.Length];

        Request.InputStream.Read(Contents, 0, (int)Request.InputStream.Length);

        con.Open();

        try
        {
            string query = "update tblImageUpload set " + IMAGE_ID + " = @imageBytes where Image_ID='" + CID + "'";

            int i = 0;

            using (cmd = new SqlCommand(query, con))
            {
                cmd.Parameters.Add("@imageBytes", SqlDbType.VarBinary, Contents.Length).Value = Contents;

                 i = cmd.ExecuteNonQuery();
            }

            Response.Write("Upload Query = " + query);
            Response.Write("Upload Code = " + i);
        } catch (Exception ex) {
            Response.Write("Upload Code=" + ex);
        }
4

1 に答える 1

8

はいを使用できVARBINARYます。あなたはおそらくVARBINARY(MAX)それらを保存するために行くのが最善です。

次のように使用できます。

cmd.Parameters.Add("@imageBytes", SqlDbType.VarBinaryMax);
cmd.Parameters["@imageBytes"].Value = Contents;
于 2013-03-26T19:35:52.363 に答える