0

こんにちは友人私はSQLServerに画像を挿入し、SQL Server 2008 R2からC#[Windowsアプリケーション]のDatagridview列に画像を取得する必要があります。データグリッドビューに画像を表示する可能性はありますか?グリッドビュー。

SQLServerに画像を挿入するための私のコーディングは次のとおりです。

  public void saveImageInDataBase(int imageid)
    {

        byte[] imagedata = ReadImageFile(txt_upload.Text);
        SqlConnection sqlconn = new SqlConnection();
        sqlconn.ConnectionString = "Data Source=.;Initial Catalog=db_payroll;Integrated Security=True;";
        sqlconn.Open();
        string query = "insert into tbl_image values('"+imagedata+"')";
        MessageBox.Show(query);
        SqlCommand cmd = new SqlCommand(query, sqlconn);
        int rows = cmd.ExecuteNonQuery();
        if (rows > 0)
        {
            MessageBox.Show("Image saved.");
            txt_upload.Text = "";
            pictureBox1.Image = null;
        }
        else
        {
            MessageBox.Show("Unable to save image.");
            sqlconn.Close();
        }
    }

    public byte[] ReadImageFile(string imageLocation)
    {
        byte[] imageData = null;
        FileInfo fileInfo = new FileInfo(imageLocation);
        long imageFileLength = fileInfo.Length;
        FileStream fs = new FileStream(imageLocation, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);
        imageData = br.ReadBytes((int)imageFileLength);
        return imageData;
    }

この問題を解決してみてください。ありがとう

4

1 に答える 1

4

DBに保存(DBでは、imagedata列はIMAGEデータ型である必要があります)

    string query = "insert into tbl_image values(@imagedata)";
    SqlCommand cmd = new SqlCommand(query, sqlconn);
    cmd.Parameters.Add("@imagedata", System.Data.SqlDbType.Image);
    cmd.Parameters["@imagedata"].Value = imagedata;
    int rows = cmd.ExecuteNonQuery();

DBから取得するには

    string query = "select imagedata from tbl_image where ID=@ID";
    SqlCommand cmd = new SqlCommand(query, sqlconn);
    cmd.Parameters.AddWithValue("@id", id);
    byte[] imagedata=(byte[])cmdSelect.ExecuteScalar();
于 2013-02-16T14:01:58.003 に答える