如何在datagridview上为每一行显示图像或以某种方式在datagridview上显示图像? [英] How to show images on datagridview for each row or show image on datagridview somehow?
问题描述
您好,我正在使用我的表单中的实时流进入图片框,并使用该代码保存到我的表中:
(我在sqlite中使用blob来存储它)
private void metroButton1_Click(object sender,EventArgs e)
{
//////////// /////////////
baglanti.Open();
SQLiteCommand cmd = new SQLiteCommand(" insert into LentiReal(image)values('" + @ pictureBox1 +"')",baglanti);
MemoryStream stream = new MemoryStream();
pictureBox1.Image.Save(stream,System.Drawing.Imaging.ImageFormat.Jpeg);
byte [] pic = stream.ToArray();
cmd.Parameters.AddWithValue(" @ pictureBox1",pic);
cmd.ExecuteNonQuery();
baglanti.Close();
MessageBox.Show(" Kaydedildi");
///////////////////
i想要在我的datagridview上显示每一行的图像,但我找不到在datagridview上显示图像的方法。你能帮助我吗?谢谢
这是我的datagridview代码:
使用System;
使用System.Collections.Generic;使用System.ComponentModel
;
使用System.Data;使用System.Drawing
;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Windows.Forms;
使用System.Data.SQLite;
使用System.IO;
命名空间WindowsFormsApplication1
{
公共部分类aramayap:MetroFramework.Forms.MetroForm
{
public aramayap()
{
InitializeComponent() ;
}
SQLiteConnection baglanti =新SQLiteConnection("数据源= D:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\大小= 10000;页面大小= 4096;同步=关闭");
DataTable tablo2 = new DataTable();
DataTable tablo3 = new DataTable();
DataTable tablo4 = new DataTable();
DataTable tablo5 = new DataTable();
DataTable tablo6 = new DataTable();
private void label2_Click(object sender,EventArgs e)
{
}
private void aramayap_Load(object sender,EventArgs e)
{
metroComboBox1.SelectedIndex = 0;
if(metroComboBox1.Text =="TümMağazalar")
{
baglanti.Open();
tablo4.Clear();
SQLiteDataAdapter adap4 =新的SQLiteDataAdapter(选择StokKodu,Kategori,Marka,Magaza为'Mağaza',Adet来自LentiReal union所有选择StokKodu为'Stok Kodu',Kategori,Marka,Magaza为'Mağaza',Adet来自LentiPlaza",baglanti);
adap4.Fill(tablo4);
dataGridView1.DataSource = tablo4;
baglanti.Close();
}
}
private void comboBox1_SelectedIndexChanged(object sender,EventArgs e)
{
}
private void textBox1_TextChanged(object sender,EventArgs e)
{
}
private void button1_Click(object sender,EventArgs e)
{
}
private void dataGridView1_CellContentClick(object sender,DataGridViewCellEventArgs e)
{
}
private void groupBox1_Enter(object sender,EventArgs e)
{
}
private void button2_Click(object sender,EventArgs e)
{
}
private void textBox1_MouseClick(object sender,MouseEventArgs e)
{
}
private void comboBox1_MouseClick(object sender,MouseEventArgs e)
{
}
private void button3_Click(object sender,EventArgs e)
{
}
private void metroComboBox1_SelectedIndexChanged(object sender,EventArgs e)
{
if(metroComboBox1。 Text =="TümMağazalar")
{
baglanti.Open();
tablo4.Clear();
SQLiteDataAdapter adap4 =新的SQLiteDataAdapter(选择StokKodu,Kategori,Marka,Magaza为'Mağaza',Adet来自LentiReal union所有选择StokKodu为'Stok Kodu',Kategori,Marka,Magaza为'Mağaza',Adet来自LentiPlaza",baglanti);
adap4.Fill(tablo4);
dataGridView1.DataSource = tablo4;
baglanti.Close();
}
if(metroComboBox1.Text ==" Lenti Real")
{
baglanti.Open();
tablo3.Clear();
SQLiteDataAdapter adap3 = new SQLiteDataAdapter("选择StokKodu,Kategori,Marka,Magaza为'Mağaza',Adet来自LentiReal",baglanti);
adap3.Fill(tablo3);
dataGridView1.DataSource = tablo3;
baglanti.Close();
}
else if(metroComboBox1.Text ==" Lenti Plaza")
{
baglanti.Open();
tablo4.Clear();
SQLiteDataAdapter adap4 = new SQLiteDataAdapter(" select StokKodu,Kategori,Marka,Magazaas'Mağaza',Adet from LentiPlaza",baglanti);
adap4.Fill(tablo4);
dataGridView1.DataSource = tablo4;
baglanti.Close();
}
}
private void metroTextBox1_Click(object sender,EventArgs e)
{
metroButton1.Enabled = false;
}
private void metroComboBox1_MouseClick(object sender,MouseEventArgs e)
{
metroButton1.Enabled = true;
}
private void metroTextBox1_TextChanged(object sender,EventArgs e)
{
// Marka Arama Kutusu
(dataGridView1.DataSource as DataTable).DefaultView .RowFilter =
string.Format(" StokKodu LIKE'{0}%'或StokKodu LIKE'%{0}%'",metroTextBox1.Text);
/////////////////////
}
private void metroButton1_Click(object sender,EventArgs e)
{
//创建Excel应用程序
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
//在Excel应用程序中创建新的WorkBook
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
//在工作簿中创建新的Excel表格
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
//查看程序背后的excel表
app.Visible = true;
//获取第一张纸的参考。默认情况下,其名称为Sheet1。
//存储对工作表的引用
worksheet = workbook.Sheets [" Sayfa1"];
worksheet = workbook.ActiveSheet;
//更改活动工作表的名称
worksheet.Name =""从gridview导出";
//将标题部分存储在Excel
中(int i = 1; i< dataGridView1.Columns.Count + 1; i ++)
{
worksheet.Cells [1,i] = dataGridView1.Columns [i - 1] .HeaderText;
}
//将每行和列值存储到excel表
for(int i = 0; i< dataGridView1.Rows.Count - 0; i ++)
{
for(int j = 0; j< dataGridView1.Columns.Count; j ++)
{
worksheet.Cells [i + 2,j + 1] = dataGridView1.Rows [I] .Cells [j]的.Value.ToString();
}
}
}
private void metroButton2_Click(object sender,EventArgs e)
{
this.Close();
}
private void metroButton3_Click(object sender,EventArgs e)
{
}
private void metroButton3_Click_1(object sender,EventArgs e)
{
SQLiteDataAdapter sda = new SQLiteDataAdapter(" select * from LentiReal where ID ='" + metroTextBox1.Text +"'",baglanti);
DataTable dt = new DataTable();
sda.Fill(dt);
byte [] MyData = new byte [0];
MyData =(byte [])dt.Rows [0] [1];
MemoryStream str = new MemoryStream(MyData);
pictureBox1.Image = Image.FromStream(str);
}
}
}
你好AyhanB,
根据你的描述,你想要在datagridview上为每一行显示图像,我做一个你可以参考的简单示例。
Private Sub Button1_Click(sender as Object,e As EventArgs)处理Button1.Click
DataGridView1.RowTemplate.Height = 100
DataGridView1.ColumnCount = 3
DataGridView1.Columns(0).Name =" Product ID"
DataGridView1.Columns(1).Name =" Product Name"
DataGridView1.Columns(2).Name =" Product_Price"
Dim row As String()= New String(){" 1"," Product 1"," 1000"}
DataGridView1.Rows.Add(row)
row = New String(){" 2"," Product 2"," 2000"}
DataGridView1.Rows.Add(row)
row = New String(){" 3"," Product 3"," 3000"}
DataGridView1.Rows.Add(row)
row = New String(){" 4"," Product 4"," 4000"}
DataGridView1.Rows.Add(row)
Dim img As New DataGridViewImageColumn()
Dim inImg As Image = Image.FromFile(" D:\ Picture \ 1.png")
img.Image = inImg
DataGridView1.Columns.Add(img)
img.HeaderText =" Image"
img.Name =" img"
End Sub
更多 其他信息,请参阅:
https://stackoverflow.com/questions/16564978/displaying-image-in-datagridviewimagecolumn-in-vb-net
< a href ="http://www.vbforums.com/showthread.php?656013-Displaying-Image-in havenGridView"> http://www.vbforums.com/showthread.php?656013-Displaying-Image-in -DataGridView
最好的问候,
Cherry
Hello , i am getting live stream into the picture box in my form and i am saving into my table with that code:
(i am using blob in sqlite to store it)
private void metroButton1_Click(object sender, EventArgs e) { ///////////////////////// baglanti.Open(); SQLiteCommand cmd = new SQLiteCommand("insert into LentiReal(image) values ('" + @pictureBox1 + "')", baglanti); MemoryStream stream = new MemoryStream(); pictureBox1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] pic = stream.ToArray(); cmd.Parameters.AddWithValue("@pictureBox1", pic); cmd.ExecuteNonQuery(); baglanti.Close(); MessageBox.Show("Kaydedildi"); ///////////////////
i want to show images for each row on my datagridview but i cant find a way to show image on datagridview.Can you help me? thanks
here is my datagridview code:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SQLite; using System.IO; namespace WindowsFormsApplication1 { public partial class aramayap : MetroFramework.Forms.MetroForm { public aramayap() { InitializeComponent(); } SQLiteConnection baglanti = new SQLiteConnection("Data Source=D:\\vt\\StokTakip3.db;Count Changes=off;Journal Mode=off;Pooling=true;Cache Size=10000;Page Size=4096;Synchronous=off"); DataTable tablo2 = new DataTable(); DataTable tablo3 = new DataTable(); DataTable tablo4 = new DataTable(); DataTable tablo5 = new DataTable(); DataTable tablo6 = new DataTable(); private void label2_Click(object sender, EventArgs e) { } private void aramayap_Load(object sender, EventArgs e) { metroComboBox1.SelectedIndex = 0; if (metroComboBox1.Text == "Tüm Mağazalar") { baglanti.Open(); tablo4.Clear(); SQLiteDataAdapter adap4 = new SQLiteDataAdapter("select StokKodu,Kategori,Marka,Magaza as 'Mağaza',Adet from LentiReal union all select StokKodu as 'Stok Kodu',Kategori,Marka,Magaza as 'Mağaza',Adet from LentiPlaza", baglanti); adap4.Fill(tablo4); dataGridView1.DataSource = tablo4; baglanti.Close(); } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void groupBox1_Enter(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { } private void textBox1_MouseClick(object sender, MouseEventArgs e) { } private void comboBox1_MouseClick(object sender, MouseEventArgs e) { } private void button3_Click(object sender, EventArgs e) { } private void metroComboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (metroComboBox1.Text == "Tüm Mağazalar") { baglanti.Open(); tablo4.Clear(); SQLiteDataAdapter adap4 = new SQLiteDataAdapter("select StokKodu ,Kategori,Marka,Magaza as 'Mağaza',Adet from LentiReal union all select StokKodu as 'Stok Kodu',Kategori,Marka,Magaza as 'Mağaza',Adet from LentiPlaza", baglanti); adap4.Fill(tablo4); dataGridView1.DataSource = tablo4; baglanti.Close(); } if (metroComboBox1.Text == "Lenti Real") { baglanti.Open(); tablo3.Clear(); SQLiteDataAdapter adap3 = new SQLiteDataAdapter("select StokKodu ,Kategori,Marka,Magaza as 'Mağaza',Adet from LentiReal", baglanti); adap3.Fill(tablo3); dataGridView1.DataSource = tablo3; baglanti.Close(); } else if (metroComboBox1.Text == "Lenti Plaza") { baglanti.Open(); tablo4.Clear(); SQLiteDataAdapter adap4 = new SQLiteDataAdapter("select StokKodu ,Kategori,Marka,Magaza as 'Mağaza',Adet from LentiPlaza", baglanti); adap4.Fill(tablo4); dataGridView1.DataSource = tablo4; baglanti.Close(); } } private void metroTextBox1_Click(object sender, EventArgs e) { metroButton1.Enabled = false; } private void metroComboBox1_MouseClick(object sender, MouseEventArgs e) { metroButton1.Enabled = true; } private void metroTextBox1_TextChanged(object sender, EventArgs e) { //Marka Arama Kutusu (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("StokKodu LIKE '{0}%' OR StokKodu LIKE '% {0}%'", metroTextBox1.Text); ///////////////////// } private void metroButton1_Click(object sender, EventArgs e) { // creating Excel Application Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application(); // creating new WorkBook within Excel application Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); // creating new Excelsheet in workbook Microsoft.Office.Interop.Excel._Worksheet worksheet = null; // see the excel sheet behind the program app.Visible = true; // get the reference of first sheet. By default its name is Sheet1. // store its reference to worksheet worksheet = workbook.Sheets["Sayfa1"]; worksheet = workbook.ActiveSheet; // changing the name of active sheet worksheet.Name = "Exported from gridview"; // storing header part in Excel for (int i = 1; i < dataGridView1.Columns.Count + 1; i++) { worksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText; } // storing Each row and column value to excel sheet for (int i = 0; i < dataGridView1.Rows.Count - 0; i++) { for (int j = 0; j < dataGridView1.Columns.Count; j++) { worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } } } private void metroButton2_Click(object sender, EventArgs e) { this.Close(); } private void metroButton3_Click(object sender, EventArgs e) { } private void metroButton3_Click_1(object sender, EventArgs e) { SQLiteDataAdapter sda = new SQLiteDataAdapter("select * from LentiReal where ID = '"+metroTextBox1.Text+"'",baglanti); DataTable dt = new DataTable(); sda.Fill(dt); byte[] MyData = new byte[0]; MyData = (byte[])dt.Rows[0][1]; MemoryStream str = new MemoryStream(MyData); pictureBox1.Image = Image.FromStream(str); } } }
Hi AyhanB,
According to your description, you want to show images on datagridview for each row, I do one simple sample that you can refer to.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click DataGridView1.RowTemplate.Height = 100 DataGridView1.ColumnCount = 3 DataGridView1.Columns(0).Name = "Product ID" DataGridView1.Columns(1).Name = "Product Name" DataGridView1.Columns(2).Name = "Product_Price" Dim row As String() = New String() {"1", "Product 1", "1000"} DataGridView1.Rows.Add(row) row = New String() {"2", "Product 2", "2000"} DataGridView1.Rows.Add(row) row = New String() {"3", "Product 3", "3000"} DataGridView1.Rows.Add(row) row = New String() {"4", "Product 4", "4000"} DataGridView1.Rows.Add(row) Dim img As New DataGridViewImageColumn() Dim inImg As Image = Image.FromFile("D:\Picture\1.png") img.Image = inImg DataGridView1.Columns.Add(img) img.HeaderText = "Image" img.Name = "img" End Sub
More other info, please refer to:
https://stackoverflow.com/questions/16564978/displaying-image-in-datagridviewimagecolumn-in-vb-net
http://www.vbforums.com/showthread.php?656013-Displaying-Image-in-DataGridView
Best Regards,
Cherry
这篇关于如何在datagridview上为每一行显示图像或以某种方式在datagridview上显示图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!