C# 将SQL数据读取器数据加载到DataTable时出现问题

C# 将SQL数据读取器数据加载到DataTable时出现问题,c#,.net,sql-server-2008,datatable,sqldatareader,C#,.net,Sql Server 2008,Datatable,Sqldatareader,因此,var结果是通过ExecuteReader()创建的和HasRows为true,并显示正确的字段数量。但是,我从中创建的DataTable是空的 我做错了什么?我99%确定它正在获取数据,但我不知道如何通过SqlDataReader对象来确定它 谢谢。使用SqlDataAdapter而不是SqlDataReader string query = "select * from cfo_daily_trans_hist"; try {

因此,
var结果
是通过
ExecuteReader()创建的
HasRows
true
,并显示正确的字段数量。但是,我从中创建的
DataTable
是空的

我做错了什么?我99%确定它正在获取数据,但我不知道如何通过
SqlDataReader
对象来确定它


谢谢。

使用
SqlDataAdapter
而不是
SqlDataReader

string query = "select * from cfo_daily_trans_hist";
            try
            {
                using (SqlConnection connection = new SqlConnection(
                       cnnString))
                {
                    SqlCommand command = new SqlCommand(query);
                    command.Connection = connection;
                    connection.Open();

                    var result = command.ExecuteReader();
                    DataTable datatable = new DataTable();
                    datatable.Load(result);
                    connection.Close();
                }
            }
使用
SqlDataAdapter
,您不需要显式调用
SqlConnection.Open()
SqlConnection.Close()
。它在
Fill()
方法中处理

SqlDataAdapter myAdapter = new SqlDataAdapter(command);
myAdapter.Fill(datatable);