从datagridview加载图像C#

时间:2018-07-14 01:56:00

标签: c# datagridview

我正在尝试用来自数据库的值填充DataGridView。有一列的值为BLOB或图像。现在,当我将其加载到DataGridView时,它显示一个错误:参数无效。有人可以帮我吗?

触发方法

private void Form1_Load(object sender, EventArgs e)
    {

        //load company to datagrid
        string company = "SELECT * from tbl_payroll_company";
        payroll.FillDataGrid(company, payroll_company_datagrid);

    }

填充我的数据网格的方法

    public void FillDataGrid(string query,DataGridView gridview)
    {
        dbcon.Initialize();

        if (dbcon.OpenCon() == true)
        {
            dt = new DataTable();
            adapter = new MySqlDataAdapter(query, dbcon.con);
            adapter.Fill(dt);
            gridview.DataSource = dt;
            dbcon.con.Close();

        }

    }

这是我保存它的方式

    private void btnCompanyUpload_Click(object sender, EventArgs e)
    {
        OpenFileDialog CompanyFileDialog = new OpenFileDialog();

        if(CompanyFileDialog.ShowDialog() == DialogResult.OK)
        {
            try
            {
                Image logo = Bitmap.FromFile(CompanyFileDialog.FileName);
                payroll_company_logo.Image = logo;
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }

    private void btnCompanySave_Click(object sender, EventArgs e)
    {

            if(dbcon.OpenCon() == true)
            {
                MemoryStream stream = new MemoryStream();

                if (payroll_company_logo.Image != null)
                {
                    payroll_company_logo.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                }

                byte[] logo = stream.ToArray();

                string[] column_name = {"payroll_company_logo"};
                string table = "tbl_payroll_company";
                string[] column_value = {logo.ToString()};

                dbcon.Insert(table,column_name,column_value);
            }

    }

    public void Insert(string table,string[] columns,string[] values)
    {
            this.Initialize();
            con.Open();
            MySqlCommand cmd = new MySqlCommand("INSERT INTO " + table + "(" + string.Join(",", columns) + ") VALUES('" + string.Join("','", values) + "')", con);
            int check = cmd.ExecuteNonQuery();
            con.Close();



    }

错误 enter image description here

enter image description here

0 个答案:

没有答案