写一个小程序,将数据库中的两张表相关信息显示在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. ffplay mini 媒体播放器

    下载 http://pan.baidu.com/s/1dDcp3lZ 一定要解压到 D:\ffplay\ 目录下 双击 OpenWith_FFPlay_mini.reg 注册ffplay 在视频文件名 ...

  2. codeforces 488A. Giga Tower 解题报告

    题目链接:http://codeforces.com/problemset/problem/488/A 题目意思:给出一个数a,范围是[-10^9, 10^9],问它最少需要加的一个正整数 b 是多少 ...

  3. mongoose学习笔记3--简单查询1

    简述 查询就是返回一个集合中的文档的子集 Mongoose 模型提供了 find. findOne. findById 三种方法用于文档查询. 为了方便后面课程的有效学习,我们先添加一些测试数据. T ...

  4. AngularJS学习笔记1

    简介 AngularJS 是一个为动态WEB应用设计的结构框架,提供给大家一种新的开发应用方式,这种方式可以让你扩展HTML的语法,以弥补在构建动态WEB应用时静态文本的不足,从而在web应用程序中使 ...

  5. surface RT app安装心得

    打开store,然后在键盘输入字母,就出现搜索栏了. 想安装qq,但是输入后找不到软件,原因是我在初始化系统的时候,我的所在地选择的是新加坡,因此找不到软件.在屏幕右下方的setting,然后将所在地 ...

  6. WordPress环境配置与安装

    要安装wordpress,要安装apache,php,mysql,还要进行一系列复杂的配置,较为复杂. apache安装 php5.5.6 下载链接:http://windows.php.net/do ...

  7. ionic react-native和native开发移动app到底那个好

    ionic react-native和native开发移动app那个好 ? 移动端开发如何选型?这里介绍一下我眼中的ionic,react-native,native 三种移动端开发选型对比.欢迎大家 ...

  8. hrbustoj 1073:病毒(并查集,入门题)

    病毒Time Limit: 1000 MS Memory Limit: 65536 KTotal Submit: 719(185 users) Total Accepted: 247(163 user ...

  9. try-catch 示例

    package unit5; import java.util.Scanner; import javax.print.CancelablePrintJob; import javax.sound.m ...

  10. linux中使用top获取进程的资源占用信息

    在linux中使用top获取进程的资源占用信息: Cpu(s):  1.0%us,  0.0%sy,  0.0%ni, 98.3%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0 ...