您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

C# DataGridView显示数据库数据

bubuko 2022/1/25 19:22:13 dotnet 字数 19397 阅读 1157 来源 http://www.bubuko.com/infolist-5-1.html

正在学习数据库相关内容如,做个记录,加深印象! 1.使用Office Access创建名为Data.mdb的数据库,文件位置位于桌面 C:\Users\Administrator\Desktop\Data.mdb(程序里要用到的!) (长这样!) 然后,Data内含有两个文件:data1和data2 ...

正在学习数据库相关内容如,做个记录,加深印象!

Q:[图片太小看不清怎么办?}

R:[在图片上右击选择在新标签页打开图片]

1.使用Office Access创建名为Data.mdb的数据库,文件位置位于桌面

C:\Users\Administrator\Desktop\Data.mdb(程序里要用到的!)

技术分享图片(长这样!)

然后,Data内含有两个文件:data1和data2,我们用的是data1

技术分享图片

 

 data1的内容如下:

技术分享图片 

 

2.建立VS项目

在winform上添加datagridview控件

技术分享图片

(简单,粗暴!)

 

3.编写“加载数据”按钮程序

DataSet ds = new DataSet();//DataSet可理解成内存中的数据库
OleDbCommand comm = new OleDbCommand();//OleDbCommand表示要对access数据源执行的sql语句或存储过程
OleDbDataAdapter da = new OleDbDataAdapter();//leDbDataAdapter担当 DataSet和数据源之间的桥梁,用于检索和保存数据
            
//data.mdb文件位置
string ConnectionStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\Administrator\Desktop\data.mdb;";
/* 1.若我们新建的data.mdb文件文件位于当前程序的启动位置,则语句改为:
 *   string ConnectionStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath ";            
            
 * 2.代码中Provider引擎可有2种写法:
 *   Provider=Microsoft.ACE.OLEDB.12.0;
 *   Provider=Microsoft.Jet.OLEDB.4.0;
 *   区别:
 *   ACE引擎,既可以访问Office 97-2003,也可以访问Office 2007 。
 *   Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
 *   所以,如果access数据库后缀名为.accdb(2007)就不能用jet引擎了。*/

OleDbConnection sda = new OleDbConnection(ConnectionStr);//定位到要连接的数据库
sda.Open();//打开数据库,准备操作
comm.Connection = sda;//连接
comm.CommandType = CommandType.Text;//...(不会解释,VS自带的解释不太懂)

以上过程VS已经连接到了我们创建的data.mdb数据库了,接下来进行数据的读操作

 

4.读取数据库数据

 (1).显示数据库全部数据

comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables [0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

技术分享图片

 

(2)显示多行(连续)

comm.CommandText = "select top 5 * from data1";//选取data1的前5行
 da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

技术分享图片

 

(3)显示多行(非连续)

comm.CommandText = "select * from data1 where 序号 = ‘8‘ or 序号 = ‘2‘ or 序号 = ‘5‘";
 //查询表内序号为8//2/5的行
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

技术分享图片

 

显示非连续多行的方法还有其他语句可实现,可我不会!

技术分享图片 

 

(4)显示多列

comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
DataTable dat = ds.Tables[0].DefaultView.ToTable(false, new string[] { "学号", "班级", "合格标记" });
//从DataSet内提取 学号,班级,合格标记 三列内容
dgv.DataSource = dat.DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

 技术分享图片

  

(5)显示单列(根据列标题索引)

comm.CommandText = "select 学号 from data1";//选取data1内列名称为“学号”的列
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

技术分享图片

  

(6)条件筛选

s1:筛选空单元格行

comm.CommandText = "select * from data1 where ISNULL(合格标记)";//筛选合格标记列含空单元格的行
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

技术分享图片

 

s2:多条件筛选(and)

comm.CommandText = "select * from data1 where 分数 < ‘3.6‘ and 学号 > ‘000031224217‘";
//筛选分数小于3.6并且 学号大于000031224217的数据
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

技术分享图片

  

s3:多条件筛选(or)

comm.CommandText = "select * from data1 where 序号 = ‘3‘ or 序号 = ‘9‘";
//筛选序号等于3或9的数据
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

技术分享图片

 

 s4:多条件筛选(in)

comm.CommandText = "select * from data1 where 序号 in(‘3‘,‘9‘)";
//筛选序号等于3或9的数据
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!

结果如下:

 技术分享图片

  

(7)datagridview数据显示调整

以数据全部显示为例

comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
dgv.Columns[2].DataPropertyName = ds.Tables[0].Columns[3].ToString();
//将数据库第三列的数据显示在datagridview的第四列--标题不会改变

结果如下:

技术分享图片

  

调整列:

comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
dgv.Columns[2].DataPropertyName = ds.Tables[0].Columns[3].ToString();
//将数据库第三列的数据显示在datagridview的第四列--标题不会改变
dgv.Columns[3].DataPropertyName = ds.Tables[0].Columns[2].ToString();
//将数据库第四列的数据显示在datagridview的第三列--标题不会改变

结果如下:

技术分享图片

  

暂时就这些了,以后学会其他的再续上。

 

C# DataGridView显示数据库数据

原文:https://www.cnblogs.com/zhangsong-sir/p/14004199.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶