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