我写了下面的代码。我想知道我是否可以进一步改进它。
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 中所说, 他们是两个不同的东西。苹果和橙子..
SqlDataAdapter
与 DataTable
一起使用。它可以用您的 SQL 中的表填充 DataTable
。 SqlDataReader
读取数据库行一个接一个。
在您的情况下,我看不出有任何理由使用 SqlDataReader
,因为您想要返回一个 DataTable
。寻找 SqlDataAdapter
;)
..also if u can add the code for SqlDataReader using using.
当然。但正如我所说,您不能将 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/