我写了下面的代码。我想知道我是否可以进一步改善它。
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中所说的那样,它们是两个不同的事物。苹果和橘子..SqlDataAdapter
与DataTable
一起使用。它可以用SQL中的表填充DataTable
。 SqlDataReader
一对一读取数据库行。
对于您而言,由于您要返回SqlDataReader
,因此我看不到使用DataTable
的任何理由。选择SqlDataAdapter
;)
..如果您还可以使用using添加SqlDataReader的代码。
当然。但是正如我所说,您不能将DataTable
与SqlDataReader
一起使用。但是,嘿。这是您如何使用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/