1
我可以在下面解釋這個答案以及它如何與代理一起工作時獲得一些幫助。它從這裏的答案:C# abstraction and database layerC#抽象和數據庫層和代表
...如果你是卡在使用DataReader的想法,你可以傳遞一個委託給助手,這將會使用報表中調用:
public string GetMySpecId(string dataId)
{
return _dbHelper.ExecuteQuery(
dr =>
{
if(dr.Read())
{
return dr[0].ToString();
}
// do whatever makes sense here.
},
@"select ""specId"" from ""MyTable"" where ""dataId"" = :dataId",
new SqlParameter("dataId", dataId));
return result.Rows[0][0].ToString();
}
您也可以使用像Dapper這樣的輕量級工具來簡化一些語法並處理映射到您的數據類型。 (你還是會需要處理打開連接和等。)
哪一部分,你需要解釋呢? – EJC
如果你看另一個問題的例子,你如何聲明ExecuteQuery以及爲什麼在這裏有2個return語句? – cdub
只要2個return語句看起來像一個錯字,我認爲他的意思是把第一個返回的地方放在'var result'中。我會看看我能否真正快速地找到你如何使用委託的例子。 – EJC