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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2013-9-22 17:31  /  1568 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

你上面的代码应该不会只输出一行的,要么就是你的数据表里面只有一条数据。但是你这个代码运行的话会有问题。下面是我把我以前的代码改得和你的差不多的一段代码,你可以参考一下:
  1. using (SqlConnection conn = new SqlConnection(@"Data Source = .; Initial Catalog = DataBase1; User ID = sa; Pwd = 1234;"))
  2.             {
  3.                 conn.Open();
  4.                 using (SqlCommand comm = conn.CreateCommand())
  5.                 {
  6.                     comm.CommandText = "select Name,Age from T_Persons ";
  7.                     using (SqlDataReader reader = comm.ExecuteReader())
  8.                     {
  9.                         using (FileStream fileStream = new FileStream(sfdExport.FileName,FileMode.Append,FileAccess.Write))
  10.                         {
  11.                             using (StreamWriter streamWriter = new StreamWriter(fileStream))
  12.                             {
  13.                                 while (reader.Read())
  14.                                 {
  15.                                     //string name = reader["Name"].ToString();
  16.                                     //string age = reader["age"].ToString();
  17.                                     //string str = string.Join("|", new string[] { name, age });
  18.                                     string name = reader.GetString(reader.GetOrdinal("Name"));
  19.                                     //不能用这种方法获取Age的值,因为它是Int32类型的
  20.                                     //string age = reader.GetString(reader.GetOrdinal("age"));
  21.                                     int age = reader.GetInt32(reader.GetOrdinal("age"));
  22.                                     string str = name + "|" + age;

  23.                                     streamWriter.WriteLine(str);
  24.                                 }
  25.                                 streamWriter.Flush();
  26.                             }
  27.                         }
  28.                     }
  29.                 }
  30.             }
复制代码
回复 使用道具 举报
Always. 发表于 2013-9-22 23:14
恩恩。谢谢。
这个代码是我改了之后的代码,已经可以运行了。
不过,    关于(//不能用这种方法获取Age的 ...

那就有点奇怪了,我的程序运行到string age = reader.GetString(reader.GetOrdinal("age"));  这一行就会报错反而是用reader.GetInt32这种方法才可以运行。不解。。。
回复 使用道具 举报
Always. 发表于 2013-9-23 11:50
我知道为什么了。。你看我的定义表的时候是这样的:

你的应该是把Age的数据类型设为int了。。应该问题就 ...

原来如此,多谢{:soso_e181:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马