我问的原因是,最初所有引用资料和示例都指向方法 2。
但是方法 1 似乎用更少的代码做更多的事情。当然是
- 更整洁,
- 更好
- 更容易阅读/关注
- 并具有将 DBNulls 转换为 null 等功能。而不是拥有 自己做。
- 处理连接/数据读取器的打开和关闭。
我想不出有什么理由让方法 2 优于方法 1。
(方法 2 可能有一个 using 子句,但由于代码太多,它被放在一个单独的函数中,以便从其他地方调用,因此关闭它会关闭数据读取器,使数据无法访问。)
无论如何,我正在认真考虑返回并更改我的整个 Web 服务以使用方法 1,因为它看起来更好并且易于维护。谁能提出其他建议?
方法一:
using (var db = Database.OpenConnectionString(Library.Properties.Settings.Default.dbConnString, "System.Data.SqlClient"))
{
Int32 AccNo = db.QuerySingle("SELECT AccNo FROM Tasks WHERE TaskID = " + TaskID);
}
方法二:
sqlComm = new SqlCommand();
sqlCon = new SqlConnection();
sqlComm.Connection = sqlCon;
sqlCon.ConnectionString = global::Library.Properties.Settings.Default.dbConnString;
sqlComm.CommandText = "SELECT AccNo FROM Tasks WHERE TaskID = " + TaskID;
sqlCon.Open();
SqlDataReader data = sqlComm.ExecuteReader();
while (data.Read())
{
Int32 AccNo = (Int32)data["AccNo"];
}
sqlCon.Close();
sqlComm.Dispose();
if (data != null)
data.Close();
最佳答案
尝试使用 entity framework
using (var context = new YourDatabaseEntities())
{
var elements = (from c in context.YourTable where c.TaskId == taskId select c);
}
关于C# 数据库访问 : Best method to use for getting data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8560265/