首页 新闻 会员 周边 捐助

c#定义二维数组

0
[已解决问题] 解决于 2012-05-12 13:32

定义了一个9行3列的二维数组,将sql数据库中的test表第一列读入数组的第一列,为什么显示未将对象引用到实例?       
           int i;
            string[ , ] bp = new string[9,3];
            for (i = 0; i < this.dataGridView2.Rows.Count; i++)
            {
                bp[i, 0] = this.dataGridView2.Rows[i].Cells[0].Value.ToString();
            }
            MessageBox.Show(bp[i, 0]);

巴索罗缪库玛的主页 巴索罗缪库玛 | 初学一级 | 园豆:48
提问于:2012-05-10 16:15
< >
分享
最佳答案
0

建议写程序的时候将前端和后端分开考虑:

进行数据操作的时候,每次都使用datagridview的数据源,而不要从该控件的cell.value来访问。

个人觉得,这样做可以使你的程序层次更清晰。

奖励园豆:5
ChaoSimple | 菜鸟二级 |园豆:207 | 2012-05-10 19:36

那我如何取用datagridview数据源?代码怎么写?

巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-10 19:58

@巴索罗缪库玛: 

datatable dtSource=(datatable)datagridview.datasource;

以后需要访问或者修改表格中的数据,直接使用dtSource的数据就可以了。

这样子,数据层和数据展示层就可以分离,你只需专注于dtSource的数据处理即可。

ChaoSimple | 园豆:207 (菜鸟二级) | 2012-05-10 20:57

@ChaoSimple: 有错误:无法将类型为“System.Data.DataSet”的对象强制转换为类型“System.Data.DataTable”,怎么办啊?

巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-12 09:16

@巴索罗缪库玛:

 你的数据源是DataSource,当然无法转换成DataTable啊,你选择好要用的那张表就可以了么。
比如:
dataset dsSource=(dataset)datagridview.datasource;
datatable dtSource=dsSource.tables[0];
注意:
tables[]里面的索引是你要使用的表的索引,不要直接的模仿写0。

ChaoSimple | 园豆:207 (菜鸟二级) | 2012-05-12 10:49

@ChaoSimple: 那如果我有test1,test2,test3三张表,那就是tables[0],tables[1],tables[2]了吧?

巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-12 13:11

@巴索罗缪库玛:  

对的,没错,通过数字索引访问或者表名访问都可以。

建议你还是花时间看点MSDN,一些基础点的问题上面都有解答。

ChaoSimple | 园豆:207 (菜鸟二级) | 2012-05-12 16:08
其他回答(3)
0

this.dataGridView2.Rows[i].Cells[0].Value有值么?

sinhbv | 园豆:2579 (老鸟四级) | 2012-05-10 16:19

datagridview控件从sql数据库中读出来的表,有值的呀

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-10 16:21

datagridview控件从sql数据库中读出来的表,有值的呀,那如果我用datatable来写的话怎么获取test表第一列的值呢?

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-10 16:21

@巴索罗缪库玛: dt.Rows[0][0]

支持(0) 反对(0) sinhbv | 园豆:2579 (老鸟四级) | 2012-05-10 16:43

@sinhbv: 能不能写个完整的?datatable dt = new datatable();之后怎么写啊?

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-10 19:11
0

调试一下,监视一下你的this.dataGridView2.Rows[i].Cells[0].Value看看?

heqichang | 园豆:275 (菜鸟二级) | 2012-05-10 16:34
0

应该是你的字段的值(Value)是一个DBNull(或null),你可以使用数据格式化(string.Format)转换,或者调用Convert.ToString转换。

无之无 | 园豆:5095 (大侠五级) | 2012-05-10 21:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册