private void button1_Click(object sender, EventArgs e)
{
FileDialog sfd = new SaveFileDialog();
if (sfd.ShowDialog() == DialogResult.OK)
{
using (FileStream fstream = File.OpenWrite(sfd.FileName))
{
StreamWriter sw = new StreamWriter(fstream, System.Text.Encoding.GetEncoding("GB2312"));
using (SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=PhoneBook;Integrated Security=SSPI"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from Phone3";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
int id = reader.GetInt32(reader.GetOrdinal("编号"));
string users = reader.GetString(reader.GetOrdinal("用户"));
string group = reader.GetString(reader.GetOrdinal("分组"));
string name = reader.GetString(reader.GetOrdinal("姓名"));
string company= reader.GetString(reader.GetOrdinal("工作单位"));
string number = reader.GetString(reader.GetOrdinal("联系电话"));
string email = reader.GetString(reader.GetOrdinal("电子邮件"));
sw.WriteLine(number + "|" + users+"|"+group+"|"+name+"|"+company+"|"+number+"|"+email);
}
sw.Flush();
sw.Close();
}
}
conn.Close();
}
MessageBox.Show("数据导出成功!");
}
}
}
}
}
从端点调试来看好像是 string users = reader.GetString(reader.GetOrdinal("用户")); 这句没有正常执行。求大神们明示啊~
是不是报错了,有错误信息吗
检查你的数据库有没有这个字段,类型是否相符。什么没有正确执行?
string users = reader.GetString(reader.GetOrdinal("用户"))
应该是数据库表Phone3里没有用户这个字段或者字段不是这个名字引起的,核对一下数据,另外建议你不要用
select * from Phone3
直接用
select 编号,用户.... from phone3这样比较好
你在while里面使用try{}catch(Exception ex){},这样如果有错误,可以捕获异常信息,比如数据类型转换失败,字段不存在之类的,然后可以根据相应的错误信息寻找解决方法。
目测是你的数据库里面这个字段的名字或者类型不正确,可以捕捉一下异常,看看到底是什么原因,另外
尝试下 string users=reader["用户"].ToString();