C# 如何从mysql数据库向datagridview显示图像
我必须创建一个窗口窗体,将MySQL表绑定到DataGridView我的DataGridView如下所示C# 如何从mysql数据库向datagridview显示图像,c#,mysql,datagridview,C#,Mysql,Datagridview,我必须创建一个窗口窗体,将MySQL表绑定到DataGridView我的DataGridView如下所示 ID Name PIC 1 Leo 64BaseStringImage 2 hello 64BaseStringImage 通过使用此代码 mcon.Open(); MySqlDataAdapter MyDA = new MySqlDataAdapter(); string sqlSelectAll = "SELECT id,nam
ID Name PIC
1 Leo 64BaseStringImage
2 hello 64BaseStringImage
通过使用此代码
mcon.Open();
MySqlDataAdapter MyDA = new MySqlDataAdapter();
string sqlSelectAll = "SELECT id,name,pic from stockitem ORDER BY id ASC, name ASC";
MyDA.SelectCommand = new MySqlCommand(sqlSelectAll, mcon);
DataTable table = new DataTable();
MyDA.Fill(table);
BindingSource bSource = new BindingSource();
bSource.DataSource = table;
this.dataGridView1.DataSource = bSource;
DataGridViewColumn column = dataGridView1.Columns[2];
column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
//dataGridView1.DataBindings.Add("Image", mbsPrimario, "PICFIELD", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged);
mcon.Close();
有可能使DataGridView变成这样吗
ID Name PIC
1 Leo Image
2 Hello Image
我用这个来解码图像和成功
Byte[] bitmapData = Convert.FromBase64String(FixBase64ForImage(abc));
System.IO.MemoryStream streamBitmap = new System.IO.MemoryStream(bitmapData);
def = new Bitmap((Bitmap)Image.FromStream(streamBitmap));
但我不知道如何获取每个字符串图像,对其进行解码,然后插入回数据源。将字符串显示到图像的方式如下
private void MySQL_ToDatagridview4()
{
dataGridView3.Columns.Clear();
mcon.Close();
mcon.Open();
MySqlDataAdapter MyDA = new MySqlDataAdapter();
string sqlSelectAll = "SELECT Item_Name,Item_Pic from stockitem ORDER BY Main_Category_ID ASC, Item_Name ASC";
MyDA.SelectCommand = new MySqlCommand(sqlSelectAll, mcon);
DataTable table = new DataTable();
MyDA.Fill(table);
BindingSource bSource = new BindingSource();
bSource.DataSource = table;
this.dataGridView3.DataSource = bSource;
DataGridViewImageColumn imageColumn = new DataGridViewImageColumn();
imageColumn.HeaderText = "Pic";
dataGridView3.Columns.Insert(0, imageColumn);
for (int i = 0; i < table.Rows.Count; i++)
{
try
{
String pic = table.Rows[i]["Item_Pic"].ToString();
Byte[] bitmapData = Convert.FromBase64String(FixBase64ForImage(pic));
System.IO.MemoryStream streamBitmap = new System.IO.MemoryStream(bitmapData);
def = new Bitmap((Bitmap)Image.FromStream(streamBitmap));
}
catch (Exception e)
{
MessageBox.Show(e.StackTrace);
}
dataGridView3.Rows[i].Cells[0].Value = def;
}
dataGridView3.Columns.Remove("Item_Pic");
foreach (DataGridViewRow row in dataGridView3.Rows)
{
row.Height = 110;
}
foreach (DataGridViewColumn col in dataGridView3.Columns)
{
col.Width = 110;
}
for (int i = 0; i < dataGridView3.ColumnCount; i++)
{
dataGridView3.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
dataGridView3.AutoResizeColumns();
dataGridView3.Columns[i].DefaultCellStyle.Font = new System.Drawing.Font("Verdana", 8F, FontStyle.Bold);
}
mcon.Close();
}
private void MySQL\u ToDatagridview4()
{
dataGridView3.Columns.Clear();
mcon.Close();
mcon.Open();
MySqlDataAdapter MyDA=新的MySqlDataAdapter();
string sqlSelectAll=“按主类别ID ASC、项目名称ASC从库存项目订单中选择项目名称、项目图片”;
MyDA.SelectCommand=新的MySqlCommand(sqlSelectAll,mcon);
DataTable=新的DataTable();
MyDA.Fill(表格);
BindingSource bSource=新的BindingSource();
bSource.DataSource=表;
this.dataGridView3.DataSource=bSource;
DataGridViewImageColumn imageColumn=新DataGridViewImageColumn();
imageColumn.HeaderText=“Pic”;
dataGridView3.Columns.Insert(0,imageColumn);
for(int i=0;i