C# 从datagridview c加载图像#

C# 从datagridview c加载图像#,c#,datagridview,C#,Datagridview,我试图用数据库中的值填充一个DataGridView。有一列的值为BLOB或image。现在,当我将其加载到DataGridView时,它显示一个错误:参数无效。有人能帮我吗 触发该方法 private void Form1_Load(object sender, EventArgs e) { //load company to datagrid string company = "SELECT * from tbl_payroll_company";

我试图用数据库中的值填充一个
DataGridView
。有一列的值为
BLOB
或image。现在,当我将其加载到
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 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();



    }
错误


您能展示一下这些图像是如何存储的吗?(包含位图字节的字节数组,DGV应按原样正确解释)。@Jimi i编辑我的问题并输入保存代码。存储字节数组。您正在BLOB字段中存储字符串。请确保您的DB BLOB可以存储字节(读取链接中的内容)。@Jimi谢谢,我现在更改了插入它的方式。