Невозможно отобразить изображение в DataGridView из Microsoft Access - PullRequest
0 голосов
/ 06 января 2020

Я храню данные из базы данных MS Access в DataTable, а затем отображаю их в DataGridView.

Все столбцы отображаются, кроме столбца изображения. Я сохранил изображение в базе данных как «OLE Object». Я хочу отобразить изображение в последнем столбце, хотя при загрузке формы я получаю сообщение об ошибке:

Unable to display image on datagridview from microsoft access

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;
using System.Data.OleDb;

namespace ShowDataInDatagridviewFromAccessDatabase
{
    public partial class Form1 : Form
    {
        OleDbConnection acceddDatabaseConnection = null;
        string connectionSttring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Authentic\Documents\Database1.accdb";
        string sqlQuery = "SELECT * FROM Table1";

        public Form1()
        {
            acceddDatabaseConnection = new OleDbConnection(connectionSttring);
            InitializeComponent();    
        }

        private void Form1_Load(object sender, EventArgs e)
        {    
            try
            {
                acceddDatabaseConnection.Open();
                OleDbDataAdapter adapter = new OleDbDataAdapter(sqlQuery, acceddDatabaseConnection);
                DataTable dataTable = new DataTable();
                adapter.Fill(dataTable);
                dataGridView1.DataSource = dataTable;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (acceddDatabaseConnection != null)
                {
                    acceddDatabaseConnection.Close();
                }
            }
        }
    }
}

1 Ответ

1 голос
/ 08 января 2020
//Function for retrieving data from ms access database and displaying it on DataGridView
public void populateDataGridView()
{
    //First, clear all rows before populating datagridview with data from MS Access Database. Check if datagridview rows are empty before clearing.
    if (dataGridView1.Rows.Count > 0)
    {
        dataGridView1.Rows.Clear();
    }

    try
    {
        accessDatabaseConnection.Open();
        //OleDbDataAdapter adapter = new OleDbDataAdapter(sqlQuery, acceddDatabaseConnection);
        OleDbCommand command = new OleDbCommand(selectDataFromMSAccessDatabaseQuery, accessDatabaseConnection);
        OleDbDataReader reader = command.ExecuteReader();

        while (reader.Read())
        {
            Console.WriteLine(reader[8].GetType());
            dataGridView1.Rows.Add(reader[0].ToString(), reader[1].ToString(), reader[2].ToString(), reader[3].ToString(), reader[4].ToString(), reader[5].ToString(), reader[6].ToString(), reader[7].ToString(), (byte[])reader[8]);
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.StackTrace);
    }
    finally
    {
        //Finally Close MS Access Database Connection
        if (accessDatabaseConnection != null)
        {
            accessDatabaseConnection.Close();
        }


    }
}

Источник: http://mauricemuteti.info/how-to-connect-to-access-database-and-display-data-and-images-in-datagridview-in-c-sharp-windows-application/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...