写一个小程序,将数据库中的两张表相关信息显示在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控件添加数据时空白的可 错误情况的更多相关文章

  1. [置顶] DataGridView控件---绑定数据方法

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

  2. C# DataGridView控件清空数据完美解决方法

    C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...

  3. 转:C# DataGridView控件清空数据出错解决方法

    C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时: 1.DataSource为NULL(DataGridView.DataSource= null;)这样会将 ...

  4. DataGridVIew控件绑定数据之后的,增、插、删操作

    最开始没有绑定数据,很快就实现了增.插.删操作,可是绑定数据之后,进行这些操作就会报错. 网上对这方面的资料比较少,自己摸索着找到了解决方法,也就是直接对绑定的数据进行操作,这里以DataTable为 ...

  5. 将C#datagridview控件的数据导出到Excel中

    1.添加引用Microsoft.Office.Interop.Excel. 2.程序代码引用using Excel = Microsoft.Office.Interop.Excel; 3.控件事件代码 ...

  6. Xcode中给控件添加颜色时自动显示出颜色

    在iOS开发中,给一些控件设置颜色的时候,设置完不能立马看到颜色.必须要运行程序之后才能看到设置的颜色,如果颜色有偏差再回代码改参数,然后再运行看颜色很是麻烦.令人高兴得是Xcode有很多功能强大插件 ...

  7. 使用java(jdbc)向mysql中添加数据时出现“unknown column……”错误

    错误情况如题,出现这个错误的原因是这样的: 在数据库中,插入一个字符串数据的时候是需要用单引号引起来的. 而下面的代码,注意看: sta.executeUpdate("INSERT INTO ...

  8. C# DataGridView控件绑定数据后清空数据

    //1.this.dataGridView1.DataSource = null;//会将DataGridView的列也删掉 //2.this.dataGridView1.Columns.Clear( ...

  9. DataGridView控件绑定数据之后,置顶操作

    一个小小的置顶,就搞了半个小时,还是记录一下吧. 1.第一个问题就是datatable的插入只能是Insert DataRow,但是获取选中的行,都是DataGridViewRow,不能直接转换. 找 ...

随机推荐

  1. HTTP认证相关

    Java HTTPBasicAuth http://blog.csdn.net/kkdelta/article/details/28419625Python HTTPBasicAuth http:// ...

  2. local variable 'xxx' referenced before assignment

    这个问题很囧,在外面定义了一个变量 xxx ,然后在python的一个函数或类里面引用这个变量,并改变它的值,结果报错local variable 'xxx' referenced before as ...

  3. windows下安装Appserv等php套件之后无法进入数据库管理的问题

    在win7下安装Wamp或者Appserv后无法进入数据库管理,但是php.Apache运行全都没问题,mysql可以在命令行中管理,但是就是无法打开phpmyadmin数据库管理,点击后浏览器就显示 ...

  4. Cocos2d-JS坐标系统

    标准屏幕坐标系 如果接触过iOS,Android,Windows Phone等系统的应用开发,或使用DOM,CSS开发过Web网页,开发者会非常熟悉所谓的标准屏幕坐标系:左上角为原点,向右为X轴正方向 ...

  5. css样式,层叠顺序属性z-index

    在做项目的时候,居然单击后显示的顺序一直被别的li标签压着,最后终于找到了,是css的z-index属性赋值了,值越大,显示的层就越高 详情推荐百度百科:z-index z-index是针对网页显示中 ...

  6. 【python】一个简单的贪婪爬虫

    这个爬虫的作用是,对于一个给定的url,查找页面里面所有的url连接并依次贪婪爬取 主要需要注意的地方: 1.lxml.html.iterlinks()  可以实现对页面所有url的查找 2.获取页面 ...

  7. ListView滑动删除效果实现

    通过继承ListView然后结合PopupWindow实现 首先是布局文件: delete_btn.xml:这里只需要一个Button <?xml version="1.0" ...

  8. hrbustoj 1161:Leyni(树状数组练习)

    LeyniTime Limit: 3000 MS Memory Limit: 65536 KTotal Submit: 260(59 users) Total Accepted: 80(55 user ...

  9. linux tricks 之 FIELD_SIZEOF.

    ------------------------------------------- 本文系作者原创, 欢迎大家转载! 转载请注明出处:netwalker.blog.chinaunix.net -- ...

  10. 2016.6.13 php与MySQL数据库交互之数据库中的商品信息展示

    <table width="550" border="2" align="center" cellpadding="0&qu ...