【问题标题】:Show image from SQL Server 2008 in datagridview C#在 datagridview C# 中显示来自 SQL Server 2008 的图像
【发布时间】:2013-12-03 18:36:26
【问题描述】:

我厌倦了寻找解决方案。请帮我。

我有一个带有列的表格

  • p_id (int)
  • p_name (varchar50)
  • category (int)
  • price (money)
  • picture (Image)

插入过程完美无缺,它还向我显示了我的数据库记录..但它在 gridview 中播下了我的文件路径而不是显示图像...

请帮助我...它是我项目的一部分...我不知道如何在 Datagridview 中显示从数据库中检索图像

我已经在 Dall Class 中完成了我所有的 SQL 连接工作

这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;    
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Image_task
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void insert_btn_Click(object sender, EventArgs e)
        {
            try
            {
                int count;

                dall insert = new dall();

                int id = Convert.ToInt32(id_txt.Text);
                string name = name_txt.Text;
                int cat = Convert.ToInt32(cat_txt.Text);
                decimal price = Convert.ToDecimal(price_txt.Text);
                string image=pic_txt.Text;
                count = insert.insrt_up_del("insert into product values('" + id + "','" + name + "','" + cat + "','" + price + "','" + image + "')");

                MessageBox.Show("Insert Successfully", "Successfull", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            insert_btn.Enabled=false;
        }    

        private void browse_txt_Click(object sender, EventArgs e)
        {
            insert_btn.Enabled = true;

            openFileDialog1.Filter = "Images     (*.BMP;*.JPG;*.GIF,*.PNG,*.TIFF)|*.BMP;*.JPG;*.GIF;*.PNG;*.TIFF|" + "All files (*.*)|*.*";

            if (openFileDialog1.ShowDialog()==DialogResult.OK)
            {
                pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
                pic_txt.Text = openFileDialog1.FileName;

            }
        }

        private void search_btn_Click(object sender, EventArgs e)
        {
            dall select = new dall();

            DataTable dt = new DataTable();
            dt = select.select("Select * from product");
            dataGridView1.DataSource = dt;

            //DataGridViewImageColumn img = new DataGridViewImageColumn();
            //img.DataPropertyName = "Picture";
            //img.Width = 200;
            //img.HeaderText = "Picture Column";
            //img.ReadOnly = true;
                //img.ImageLayout = DataGridViewImageCellLayout.Normal;
            //dataGridView1.Columns.Add(img);
            //dataGridView1.DataSource = new BindingSource(dt,null);
        }    
    }
}    

【问题讨论】:

  • SQL Injection alert - 您应该将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入
  • 我的数据库表中有一些值.. 我想在 DataGridView 中显示我的值.. 一切正常但不是图像... 它显示图像的路径而不是图像..

标签: image sql-server-2008 c#-4.0 datagridview windows-forms-designer


【解决方案1】:

使用数据适配器

DataAdapter da = new DataAdapter("Select * from product",youconnection);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;

【讨论】:

  • 这如何回答这个问题?
猜你喜欢
  • 2012-01-06
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多