A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蔡纯富 中级黑马   /  2012-3-25 21:44  /  2168 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 蔡纯富 于 2012-3-26 12:05 编辑



                                while (reader.Read())
                                {
                                    string str1 = reader.GetString(0);
                                    //string str2 = reader.GetString(1).ToString();
                                    int i = reader.GetInt32(1);                                    
                                    sr.WriteLine("{0},{1}", str1, i);
                                }//reader为读取到的数据记录对象集合;sr为StreamReader,用于读取数据

已知我的数据库中表有两列,每一列数据类型为nvarchar(50),第二列为int;我想对数据进行导出,可是报错了,

如图所示,为什么用了ToString()方法还会报错?而如果把此行代码注释掉换为int i = reader.GetInt32(1)就行了?求解是为什么啊

评分

参与人数 1技术分 +3 收起 理由
郑文 + 3

查看全部评分

4 个回复

倒序浏览
试试Convert.ToString()吧

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我想你的问题不至于ToString()  而是在于GetString(1)有问题

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你所要得到的那个数是 int 类型的,你用GetString()方法得到它当然会报错,int类型的必须要用GetInt32()来获取。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
   你要取得的数据l类型是整型的吧,除了GetString方法外还有GetInt32()等其它方法,也不是取数据库所有的数据都用GetString()方法的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马