我正在尝试用来自数据库的值填充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();
}