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

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编写它的方式是什么。还有哪一个更好。任何帮助/指导表示赞赏。

最佳答案

还有哪一个更好?


正如我在comment中所说的那样,它们是两个不同的事物。苹果和橘子..

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

对于您而言,由于您要返回SqlDataReader,因此我看不到使用DataTable的任何理由。选择SqlDataAdapter;)


  ..如果您还可以使用using添加SqlDataReader的代码。


当然。但是正如我所说,您不能将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/

10-10 07:23