C# 从SQL读取器到datatable的数据-在读取器关闭时调用Read的尝试无效

C# 从SQL读取器到datatable的数据-在读取器关闭时调用Read的尝试无效,c#,sqldatareader,C#,Sqldatareader,我一直在尝试,但仍然不知道如何解决这个问题,不断得到相同的错误。我想把数据库中的数据转换成txt文件 using (conn) { conn.Open(); SqlCommand cmd = new SqlCommand(command) cmd.Connection = (SqlConnection)conn; using (cmd) { SqlDataReader reader = cmd.ExecuteReader();

我一直在尝试,但仍然不知道如何解决这个问题,不断得到相同的错误。我想把数据库中的数据转换成txt文件

    using (conn)
{
    conn.Open();
    SqlCommand cmd = new SqlCommand(command)
    cmd.Connection = (SqlConnection)conn;

    using (cmd)
    {
        SqlDataReader reader = cmd.ExecuteReader();
        using(reader)
        {
             while (reader.Read())
             {
                  dt.Load(reader);
             }
        }

        using (StreamWriter sw = new StreamWriter(txtPath.Text + fileName))
        {
            // write to text file from Datatable dt
        }  }

尝试安装代码,如下所示:

 DataTable myDataTable = new DataTable();


        using (SqlConnection myConnection = new SqlConnection(yourDBconn)
        {
                yourDBconn.Open();
                using (SqlDataAdapter myAdapter = new SqlDataAdapter(strYourQuery, yourDBconn))
                {
                    myAdapter.Fill(myDataTable);
                }
            }
        }
给你。测试

var customers = new List<Tuple<int, string>>(); // the list of ID, Name
using (var con = new SqlConnection("your connection string"))
{
    using(SqlCommand cmd = new SqlCommand("select ID, Name from Customer", con))
    {
        con.Open();       
        using(SqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                customers.Add(new Tuple<int, string>(
                    (int)reader["ID"], reader["Name"].ToString()));
            }
        }
    }
}
// Store customers to file
var customers=new List();//ID、名称的列表
使用(var con=newsqlconnection(“您的连接字符串”))
{
使用(SqlCommand cmd=newsqlcommand(“从客户处选择ID、名称”,con))
{
con.Open();
使用(SqlDataReader=cmd.ExecuteReader())
{
while(reader.Read())
{
添加(新元组)(
(int)读卡器[“ID”],读卡器[“Name”].ToString());
}
}
}
}
//存储要归档的客户

错误是什么?关于代码的一些事情应该以不同的方式进行。cmd应该在using行上定义,读卡器也应该如此,类似于您定义的sw变量。我看不出dt的定义在哪里。