c# - 我应该使用 SqlDataReader 还是 SqlDataAdapter 类来返回数据表

标签 c# asp.net asp.net-4.0 using sqlconnection

我写了下面的代码。我想知道我是否可以进一步改进它。

public static DataTable GetDepartments()
{
    DataTable dt = new DataTable();

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        using (SqlCommand command = new SqlCommand())
        {
            command.CommandText = "proc_GetDepartments";
            command.CommandType = CommandType.StoredProcedure;

            connection.Open();
            using (SqlDataAdapter da = new SqlDataAdapter(command))
            {
                command.Connection = connection;
                da.Fill(dt);
            }
        }
    }
    return dt;

}

这里我使用了 SqlDataAdapter。 SqlDataReader 的编写方式是什么。还有哪个更好。感谢您提供任何帮助/指导。

最佳答案

Also which one is better?

正如我在 comment 中所说, 他们是两个不同的东西。苹果和橙子..

SqlDataAdapterDataTable 一起使用。它可以用您的 SQL 中的表填充 DataTableSqlDataReader 读取数据库行一个接一个

在您的情况下,我看不出有任何理由使用 SqlDataReader,因为您想要返回一个 DataTable。寻找 SqlDataAdapter ;)

..also if u can add the code for SqlDataReader using using.

当然。但正如我所说,您不能将 DataTableSqlDataReader 一起使用。但是嘿.. 下面是如何使用 SqlDataReader;

获取值
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    int firstcell = reader.GetInt32(0);    // I assume your first column is int.
    string secondcell = reader.GetString(1);  // I assume your second column is string.
    string thirdcell = reader.GetString(2); // I assume your third column is string.
    Console.WriteLine("FirstCell = {0}, SecondCell = {1}, ThirdCell = {2}", firstcell, secondcell , thirdcell);
}

关于c# - 我应该使用 SqlDataReader 还是 SqlDataAdapter 类来返回数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884188/

相关文章:

c# - 如何通过LongListSelector索引选择ItemViewModel对象

c# - 在列表框 WPF 中绑定(bind)组合框

c# - 将数据附加到 asp.net mvc 项目结构/树中的文本文件(如何处理文件?)

javascript - aspx鼠标悬停时水平展开DIV

c# - MVC3 View : Handling null models with finesse

javascript - 字符串比较失败 - JavaScript IE 9

wcf - 如何修复在 Amazon EC2 上运行的 .Net WCF 服务的 'Access Denied' 错误?

c# - 在 Windows 窗体中获取属性 ID

c# - 在多个客户端使用它的情况下保护 ASP.NET Web API 2 的最佳方法

ASP.NET HyperLink 而不是 LinkBut​​ton - 如何避免图像周围的边框?