在将SQL Data Reader数据加载到DataTable时遇到问题

本文关键字:DataTable 遇到 问题 加载 SQL Data Reader 数据 在将 | 更新日期: 2023-09-27 18:11:49

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();
                }
            }

因此,var result是通过ExecuteReader();创建的,HasRowstrue,并且它显示了正确的字段数量。但是,我从它创建的DataTable是空的。

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

谢谢。

在将SQL Data Reader数据加载到DataTable时遇到问题

SqlDataAdapter代替SqlDataReader

SqlDataAdapter myAdapter = new SqlDataAdapter(command);
myAdapter.Fill(datatable);
对于SqlDataAdapter,您不需要显式调用SqlConnection.Open()SqlConnection.Close()。它在Fill()方法中处理。

您可以尝试添加"COALESCE"在你的SQL命令语句中…如果查询结果中有一些NULL值,那么dataTable

就会出现问题。