加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

DataGridView控件---绑定数据的两种方法

(2015-07-31 10:06:27)
标签:

控件

单元格

数据绑定

标题

代码

分类: C#

 DataGridView控件是在windows应用程中显示数据最好的方式,它只需要几行简短的代码就可以把数据显示给用户,同时又支持增、删、改操作。今天将自己总结的增加数据的方法总结分享给大家

 

   关于DataGridView的一些属性介绍大家可以参照百度百科,我在这里主要写如何用两种方法去实现绑定数据


1.非绑定模式 


所谓的非绑定模式就是dataGridView控件显示的数据不是来自于绑定的数据源,而是可以通过代码手动将数据填充到DataGridView控件中,这样就为DataGridView控件增加了很大的灵活性

在此我们先来了解一下DataGridView控件有多种类型的列 ,而这些类型都是间接的或直接的继承了DataGridViewColumns()    ,下面是我们能够长用的几种类型

说明

DataGridViewTextBoxColumn

与基于文本的值一起使用,在绑定到数字和字符串类型的值时自动生成

DataGridViewCheckBoxColumn

booleancheckState值一起使用,在绑定到这些类型的值时自动生成

DataGridViewImageColumn

用于显示图像,在绑定到字节数组、Image对象或Icon对象自动生成

DataGridViewButtonColumn

用于在单元格中显示按钮,不会在绑定时自动生成,通常用来做未绑定列

DataGridViewComboBoxColumn

用户在单元格中显示下拉列表,不会在绑定时自动生成,通常收到进行数据绑定

DataGridViewLinkColumn

用于在单元格中显示超链接,不会在绑定时自动生成,通常需要进行手动绑定数据

了解了这些看下面的例子 

 

[csharp] view plaincopy
  1.  '创建一个显示textBox的列()  
  2.  Dim col1 As DataGridViewTextBoxColum=New DataGridViewTextBoxColumn()  
  3.  col1.Name "Name"  
  4. col1.HeaderText "姓名" '设置标题中显示的文本  
  5.   
  6. Dim col3 As DataGridViewTextBoxColumNewDataGridViewTextBoxColumn()  
  7.  col3.Name "sex"  
  8. col3.HeaderText "性别"  
  9.   
  10. '将新建的列添加到控件中  
  11.  DataGridView1.Columns.Add(col1)  
  12.  DataGridView1.Columns.Add(col3)  
  13.   
  14.  '添加行  
  15.  '创建新行   
  16.  Dim row As DataGridViewRow NewDataGridViewRow()  
  17.  row.CreateCells(DataGridView1)  
  18.  '设置单元格的值  
  19. row.Cells(0).Value "张三"  
  20. row.Cells(1).Value "男"  
  21.  DataGridView1.Rows.Add(row)  
  22.  '添加第二行  
  23. im row1 As String() {"李四""男" 
  24.  DataGridView1.Rows.Add(row1)  

 

http://img.blog.csdn.net/20130729172832984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVkYW5kYW4xMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

 

另外对于添加标题列也可以不用代码添加,而是通过手动添加列  操作步骤如下


1,点击DataGridView控件  就可以看到一个小三角,点击小三角弹出菜单  选择编辑列如下所示

http://img.blog.csdn.net/20130729172903906?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVkYW5kYW4xMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

编辑列:

http://img.blog.csdn.net/20130729172932296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVkYW5kYW4xMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

同时也可以修改列的属性

http://img.blog.csdn.net/20130729173002140?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVkYW5kYW4xMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

 

绑定模式

 

将存在的数据绑定到控件上,  我是将数据库表中的数据绑定到控件上  ,我将用户表中的用户名,密码,开户人信息绑定到控件上,具体步骤如下  我在在窗体的Load 事件下来完成这些步骤的 

 

 

[csharp] view plaincopy
  1. 参考代码:   
  2.   
  3.   '连接数据库  
  4.        Dim cnStr As String "PersistSecurity Info=False;User ID=sa;Initial Catalog=studentSystem;DataSource=192.168.24.74;pwd=123456"  
  5.        Dim cn As SqlConnection NewSqlConnection(cnStr)  
  6.        cn.Open() '打开数据库  
  7.        Dim sql AsString "select U_ID as 用户名 ,U_passwordas 密码,U_head as 开户人 from T_user"  
  8.        Dim cmd As SqlCommand NewSqlCommand(sql, cn)  
  9.   
  10.        Dim da As SqlDataAdapter NewSqlDataAdapter()  
  11.        da.SelectCommand cmd  
  12.   
  13.        Dim ds As DataSet New DataSet()  
  14.        da.Fill(ds,"T_user"'填充数据集  
  15.        '绑定数据集  
  16.        DataGridView1.DataSource ds  
  17.        DataGridView1.DataMember ="T_user"  


 

运行效果图 

http://img.blog.csdn.net/20130729173031875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVkYW5kYW4xMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

 

  此中运行效果和非绑定模式下显示的相同,但方法却截然不同,而我在添加标题列时是利用的SQL语句实现的

  Dim sql As String ="select U_ID as 用户名 ,U_password as 密码,U_head as 开户人 from T_user" 对于这一部分,我们也可以通过不同的代码来实现它  具体代码和上述区别在于  SQL语句处Dim sql As String = "select U_ID ,U_password,U_head  from T_user"  这样写,在绑定好了数据集后在设定标题列  代码如下:

 

 

[csharp] view plaincopy
  1. '设置标题第0列  
  2.       DataGridView1.Columns(0).HeaderText "用户名"  
  3.        '冻结标题  也就是标题不会随着数据的移动而消失  
  4.        DataGridView1.Columns(0).Frozen True  
  5.        '添加第一列标题  
  6.       DataGridView1.Columns(1).HeaderText "姓名"  
  7.        DataGridView1.Columns(1).Frozen True  
  8.        '设置第二列标题  
  9.       DataGridView1.Columns(2).HeaderText "开户人"  
  10.        DataGridView1.Columns(2).Frozen True  

 

这样编写和我们在SQL语句中就定义标题列的效果是一样的


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有