具有Access数据库的C#.Net中的数据网格视图显示问题 [英] Data grid view display problem in C# .Net with Access Data base

查看:77
本文介绍了具有Access数据库的C#.Net中的数据网格视图显示问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将C#.net与Access DB一起使用.我试图从DB检索数据到数据网格视图以显示数据,但是它只显示了第一列和第二列,没有显示数据,但是在数据集中,有谁可以帮忙吗?

下面我给出代码

Hi I m using C# .net with Access DB.I m trying to retrieve data from DB to Data grid view to display data but it is showing only 1st and 2nd column remaining are not showing data but in dataset it is there ,can any one help please?

Below I give code

private void grid()
       {
           dgv.Columns.Clear();
           DataGridViewTextBoxColumn dgvCol = new DataGridViewTextBoxColumn();
           string str;
           str = "SELECT * FROM excess";
           OdbcCommand cmd = new OdbcCommand(str,con);
           OdbcDataAdapter da = new OdbcDataAdapter();
           DataSet ds = new DataSet();
           da.SelectCommand = cmd;
           da.Fill(ds, "ExcessGView");

           if (ds.Tables["ExcessGView"].Rows.Count > 0)
           {
               foreach (DataRow dr in ds.Tables["ExcessGView"].Rows)
               {
                   for (int i = 0; i < ds.Tables["ExcessGView"].Columns.Count; i++)
                   {
                       dgvCol = new DataGridViewTextBoxColumn();
                       dgvCol.Width = 150;
                       dgvCol.ReadOnly = true;
                       dgvCol.SortMode = DataGridViewColumnSortMode.Programmatic;
                       dgvCol.HeaderText = ds.Tables["ExcessGView"].Columns[i].ColumnName.ToUpper();
                       dgv.Columns.Add(dgvCol);
                   }
                  break;
               }

               int r = 0;
               dgv.RowCount = ds.Tables["ExcessGView"].Rows.Count;

               foreach (DataRow dr in ds.Tables["ExcessGView"].Rows)
               {
                   for (int i = 0; i < ds.Tables["ExcessGView"].Rows.Count; i++)
                   {
                       try
                       {
                           dgv.Rows[r].Cells[i].Value = dr[i].ToString();
                       }
                       catch (Exception ex)
                       {
                           con.Close();
                           MessageBox.Show(ex.Message);
                       }
                   }
                   r = r + 1;
               }

           }

           else
           {
               con.Close();
           }

       }




谢谢&问候
英德拉吉特

[已编辑]代码在前置"标记中被阻止[/已编辑]




Thanks & regards
Indrajit

Code is blocked in "pre" tags[/Edited]

推荐答案

您好,


使用此简单语法显示数据

Hi,


Use this simple syntax to show the data

dgv.DataSource=ds.Tables["ExcessGView"];


而不是这些循环.
试试吧.

问候
AR


instead of these loops.
Try it.

Regards
AR


只需做两件事:
1.对于datagrid,保持AutoGenerateColumns = true
2.使用Datagrids DataSource属性,然后将其绑定,例如:
Just do two things:
1. Keep AutoGenerateColumns = true for the datagrid
2. Use Datagrids DataSource property and then bind it, like:
mydg.Datasource = ds.Tables["mytable"];
mydg.Databind();


这篇关于具有Access数据库的C#.Net中的数据网格视图显示问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆