DataGridView控件添加数据时空白的可 错误情况
写一个小程序,将数据库中的两张表相关信息显示在DataGridView中。代码如下:
- //获取项目数据,添加到表中
- SqlConnection con = new SqlConnection(MainForm2.connection);
- con.Open();
- string cmd1 = string.Format(@"Select * from ProjectInfo where ProjectName='{0}'", pjnm);
- string cmd2 = string.Format(@"Select * from ParameterInfo where ProjectName='{0}'", pjnm);
- //添加基本信息表
- SqlCommand cmd = new SqlCommand(cmd1,con);
- SqlDataReader reader = cmd.ExecuteReader();
- reader.Read();
- for (int i = ; i < reader.FieldCount; i++)
- {
- this.dataGridViewX1.Rows.Add();
- this.dataGridViewX1[, i].Value = reader.GetName(i);
- if (reader.GetValue(i) == null)
- {
- this.dataGridViewX1[, i].Value = "未输入";
- }
- else
- {
- this.dataGridViewX1[, i].Value = reader.GetValue(i).ToString();
- }
- }
- int fcount = reader.FieldCount;
- reader.Close();
- //添加参数信息
- SqlCommand cmdd = new SqlCommand(cmd2, con);
- reader = cmdd.ExecuteReader();
- reader.Read();
- for (int i = ; i < reader.FieldCount; i++)
- {
- this.dataGridViewX1.Rows.Add();
- string str = ParameterInfoCls.standardName(i);
- this.dataGridViewX1[, fcount + i].Value = str;
- if (reader.GetValue(i) == null || reader.GetValue(i).ToString() == "")
- {
- this.dataGridViewX1[, fcount + i].Value = "未输入";
- }
- else
- {
- this.dataGridViewX1[, fcount + i].Value = reader.GetValue(i).ToString();
- }
- }
- reader.Close();
- con.Close();
运行后一直出现空白。如图:
第一张表添加正常,第二张表却一直出现空白。断点逐步检查,每行代码值都是正常,且各字段的长度都是很大,数据远没有超出长度。
多次试验发现,第二张表循环错误。由于第二张表与第一张表的第一个字段一样,所以为了剔除该行,循环变量初值为1。对DataGridView单元格赋值时,忘记对该初值减去1,造成
在每次循环中添加第i行,而对第i+1行单元格赋值的情况。
修正循环变量初值,即可。代码如下:
- for (int i = ; i < reader.FieldCount; i++)
- {
- this.dataGridViewX1.Rows.Add();
- string str = ParameterInfoCls.standardName(i);
- this.dataGridViewX1[, fcount + i-].Value = str;
- if (reader.GetValue(i) == null || reader.GetValue(i).ToString() == "")
- {
- this.dataGridViewX1[, fcount + i-].Value = "未输入";
- }
- else
- {
- this.dataGridViewX1[, fcount + i-].Value = reader.GetValue(i).ToString();
- }
- }
DataGridView控件添加数据时空白的可 错误情况的更多相关文章
- [置顶] DataGridView控件---绑定数据方法
DataGridView控件是在windows应用程中显示数据最好的方式,它只需要几行简短的代码就可以把数据显示给用户,同时又支持增.删.改操作.今天将自己总结的增加数据的方法总结分 ...
- C# DataGridView控件清空数据完美解决方法
C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...
- 转:C# DataGridView控件清空数据出错解决方法
C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...
- DataGridVIew控件绑定数据之后的,增、插、删操作
最开始没有绑定数据,很快就实现了增.插.删操作,可是绑定数据之后,进行这些操作就会报错. 网上对这方面的资料比较少,自己摸索着找到了解决方法,也就是直接对绑定的数据进行操作,这里以DataTable为 ...
- 将C#datagridview控件的数据导出到Excel中
1.添加引用Microsoft.Office.Interop.Excel. 2.程序代码引用using Excel = Microsoft.Office.Interop.Excel; 3.控件事件代码 ...
- Xcode中给控件添加颜色时自动显示出颜色
在iOS开发中,给一些控件设置颜色的时候,设置完不能立马看到颜色.必须要运行程序之后才能看到设置的颜色,如果颜色有偏差再回代码改参数,然后再运行看颜色很是麻烦.令人高兴得是Xcode有很多功能强大插件 ...
- 使用java(jdbc)向mysql中添加数据时出现“unknown column……”错误
错误情况如题,出现这个错误的原因是这样的: 在数据库中,插入一个字符串数据的时候是需要用单引号引起来的. 而下面的代码,注意看: sta.executeUpdate("INSERT INTO ...
- C# DataGridView控件绑定数据后清空数据
//1.this.dataGridView1.DataSource = null;//会将DataGridView的列也删掉 //2.this.dataGridView1.Columns.Clear( ...
- DataGridView控件绑定数据之后,置顶操作
一个小小的置顶,就搞了半个小时,还是记录一下吧. 1.第一个问题就是datatable的插入只能是Insert DataRow,但是获取选中的行,都是DataGridViewRow,不能直接转换. 找 ...
随机推荐
- 【转】 Mybatis/Ibatis,数据库操作的返回值
该问题,我百度了下,根本没发现什么有价值的文章:还是看源代码(详见最后附录)中的注释,最有效了!insert,返回值是:新插入行的主键(primary key):需要包含<selectKey&g ...
- c++ const总结
[本文链接] http://www.cnblogs.com/hellogiser/p/cplusplus-const-summay.html 看到const 关键字,C++程序员首先想到的可能是con ...
- Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决
前天PHP7.0.0正式版发布了,有一些比较好的改进,官方也说速度比php5.6快了两倍,性能上有了很大提升,并且也发布了从php5.x向php7迁移的问题,所以今后php网站迁移后能够大幅度的提升网 ...
- Java for LeetCode 150 Evaluate Reverse Polish Notation
Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...
- JS Replace 全部替换字符 用法
转载自:http://www.cnblogs.com/skykang/archive/2011/08/04/2127158.html <script language="javascr ...
- jsp页面之间传参用el表达式获取
jsp页面之间传参用el表达式获取 参数方法:${param.参数名} session方法:${session.变量名}
- C++中的static数据成员与static成员函数
本文要点: 1.static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联! aka:每个static数据成 ...
- Linux串口设置及编程(转)
用户常见的数据通信的基本方式可分为并行通信和串行通信. 并行通信是指利用多条数据传输线将一个资料的各位同时传送.特点是传输速度快,适用于短距离通信,但要求传输速度较高的应用场合. 串行通信是指利用一条 ...
- POJ 1523 SPF tarjan求割点
SPF Time Limit: 1000MS Memory Limit ...
- SQL Server SA 密码丢失无法连接数据库怎么办?
如果Windows账户无法连接并且SA密码也丢失了,那么如何可以连接到数据库呢? 答案是: 在单用户模式下启动SQL Server然后用本地管理员权限连接.登陆之后就可以修改SA密码了. 步骤: 1. ...