DataGridView控件用法一 绑定数据 chart控件绑定数据



一、DataGridView控件的用法(如何绑定、修改其中某一列值、添加序号列、交换任意2列显示顺序)

1.DataGridView绑定数据源。在页面上拖放一个DataGridView控件

//连接数据库读取数据,为DataGridView赋值。

String strConn = "server= .XWPC_DATABASE;uid=数据库用户名;pwd=数据库密码;database=数据库名";

SqlConnection conn = new SqlConnection(strConn);

String sqlId = "select * from [USER] ";

conn.Open();

SqlCommand cmd = new SqlCommand(sqlId, conn);

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

da.Fill(ds, "USER");

DataGridView.DataSource = ds;

DataGridView.DataMember = "USER";

conn.Close();

上述代码执行后页面上数据显示是这样的:



2. 修改DataGridView中数据的表头(本来默认是数据库中的字段名)。

//改变DataGridView的表头

DataGridView.Columns[1].HeaderText = "用户名";

//设置该列宽度

DataGridView.Columns[1].Width = 70;

3. 将DataGridView最前面一列编号改为从1开始依次增加的序号(默认的字段编号对用户没意义,而且不连续)。

//在表前面加一列表示序号

DataGridView.Columns[0].HeaderText = "编号";

DataGridView.Columns[0].Width = 60;

//自动整理序列号

int coun = DataGridView.RowCount;

for (int i = 0; i < coun - 1; i++){

DataGridView.Rows[i].Cells[0].Value = i + 1;

DataGridView.Rows[i].Cells["USER_ID"].Value = i + 1;

}

//改变DataGridView的表头

DataGridView.Columns[1].HeaderText = "用户名";

//设置该列宽度

DataGridView.Columns[1].Width = 70;

DataGridView.Columns[2].HeaderText = "密码";

DataGridView.Columns[2].Width = 70;

//默认按顺序每列DataGridView依次从ds中对应赋值

DataGridView.Columns[0].DataPropertyName = ds.Tables[0].Columns[0].ToString();

执行后效果如下:



4. 对调DataGridView中某两列的顺序,代码如下:

//改变DataGridView的表头

DataGridView.Columns[1].HeaderText = "密码";

//设置该列宽度

DataGridView.Columns[1].Width = 70;

DataGridView.Columns[1].DataPropertyName = ds.Tables[0].Columns[2].ToString();

DataGridView.Columns[2].HeaderText = "用户名";

DataGridView.Columns[2].Width = 70;

DataGridView.Columns[2].DataPropertyName = ds.Tables[0].Columns[1].ToString();

执行效果:



5. 设置DataGridView使某列不显示、使其不可直接编辑、使其不显示最后一行空白。

//不显示出dataGridView的最后一行空白

DataGridView.AllowUserToAddRows =false;

//不允许在列表上直接编辑

DataGridView控件用法(一)绑定数据 chart控件绑定数据
DataGridView.ReadOnly =true;

//数据库表中第十列数据不显示在表格中

DataGridView.Columns[9].Visible =false;

6. 将从 下拉列表ComboBox中选择存入数据库中的数据1,2…转换为对应字符串显示给用户(比如用户角色在数据库中1为管理员,2为会员,3为最终用 户,那么DataGridView列表中应该显示管理员/会员/最终用户而不是显示1/2/3这样的数字)。CheckBox也是同理(比如性别1为 男,0为女,我们需要显示男/女而不是1/0)。

这个问题可以在数据从DataSet绑定到DataGridView之前对DataSet中数据进行遍历一次,将该字段修改后再存入DataSet,然后再绑定到DataGridView,此法耗时,数据记录多的情况延迟非常明显。所以一般采用CellFormatting事件来完成该任务,因为DataGridView.CellFormatting事件在每绘制一个单元格时,就会发生一次,这样就可以在显示列表时修改这个单元格的显示内容。当然,也正因为每绘制一个单元格都触发CellFormatting事件, 所以处理此事件时应避免时间过长。另外,在检索单元格FormattedValue或调用其GetFormattedValue方法时,此事件也会发生。 网上也有少数人说该事件不建议使用,因为这个事件稍不注意就经常被触发而更新表格,比如排序时候也被触发,目前我没发现这个问题,也可能是我数据比较少 吧。实际上该事件被普遍用于帮助用户实现自定义单元格样式,比如改变背景颜色、高亮显示某行等。废话不说了,用CellFormatting事件实现修改DataGridView中某列的值代码如下:(在设计器中DataGridView的属性栏–切换到事件栏–找到CellFormatting事件,双击进入该事件函数体写如下代码。)

方法一:

1privatevoidDataGridView_CellFormatting(objectsender, DataGridViewCellFormattingEventArgs e) {

2if(e ==null|| e.Value ==null|| !(senderisDataGridView))

3return;

5DataGridView view = (DataGridView)sender;

7try{

8if(view.Columns[e.ColumnIndex].DataPropertyName =="USER_ROLEID") {

9intval = Convert.ToInt32(e.Value);

10switch(val) {

11case1:

12e.Value ="管理员";

13break;

14case2:

15e.Value ="会员";

16break;

17case3:

18e.Value ="最终客户";

19break;

20default:

21break;

22}

23e.FormattingApplied =true;

24}

25}

26catch(System.Exception ex) {

27e.FormattingApplied =false;

28MessageBox.Show(ex.ToString());

29}

30}

方法二:

1privatevoidDataGridView_CellFormatting(objectsender, DataGridViewCellFormattingEventArgs e) {

2try{

3//&ldquo;USER_ROLEID&rdquo;这列在数据库中对应第5列,角标是4

4if(e.ColumnIndex == 4) {

5intval = Convert.ToInt32(e.Value);

6switch(val) {

7case1:

8e.Value ="管理员";

9break;

10case3:

11e.Value ="会员";

12break;

13case5:

14e.Value ="最终客户";

15break;

16default:

17break;

18}

19e.FormattingApplied =true;

20}

21}

22catch(System.Exception ex) {

23e.FormattingApplied =false;

24MessageBox.Show(ex.ToString());

25}

26}

以上两种方法都测试通过,结果一样,执行后效果如下:

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/103684.html

更多阅读

C#DataGridView控件清空数据完美解决方法 datagridview清空列

C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时:1.DataSource为NULL(DataGridView.DataSource=null;)这样会将DataGridView的列也删掉。2.用DataGridview.Rows.Clear();提示“不能清除此列表”!!!!!以上都不是想要的结果

执中守一乾坤定 执掌乾坤女主

荡荡天门万古开,诸君验证唯善和;自然法则公有制,蛹化成蝶大提升。紫薇圣人是董永的后代,玉皇大帝的外甥,月宫之兔下凡。紫薇圣人的“乾坤再造”工作已经完成。预测2012年左右及其以后的地球的灾难,已经在2010年10月1日提前释放了,也就是说

德行定终生 一吻定终生

胡雪岩是中国晚清时期的一位传奇人物,我们今天讲胡雪岩,并不是把他当作一个历史人物来研究,因为胡雪岩死前被抄家,留下的资料很少。但是关于胡雪岩的传奇故事,却在民间口耳相传,流传甚广。&#160;胡雪岩出身贫寒,却在短短十几年的时间里迅速

日剧《一吻定情》全集+动漫+日+国 语 一吻定情日剧同人文

一吻定情恶作剧之吻,电视剧名称。是根据日本多田薰人气漫画《淘气小亲亲》(又名《一吻定情》)改编拍摄而成的青春偶像剧,共有两个版本,一是台湾版,一是日本版。因电视剧收视率不错的情况下,日本方面也根据《淘气小亲亲》(11-23卷),改编制作了

声明:《DataGridView控件用法一 绑定数据 chart控件绑定数据》为网友凉冬空巷分享!如侵犯到您的合法权益请联系我们删除