我的執行sql任務返回一個「完整結果集」,它存儲在Object objResults中。我想要一個簡單的方法來獲取objResults中的行數。我該怎麼做 ?我想用c#代碼來獲得這個數字。獲取結果集或ADO記錄集中行數的簡單方法
我可以將整個objResults載入一個DataTable並獲得myDataTable.Rows.Count;
的numberOfRows,但是這種方法顯然是效率低下的。
注 - 我正在使用.NET 3.5和Visual Studio 2008.我知道這是一個4.0/visual studio的方法。但它不適用於我。
這裏是4.0溶液 -
的對象實際上是ADO記錄。這是一個COM對象,所以從C#中使用它可能需要互操作程序集或動態。動態更容易。
在你的腳本任務添加引用Microsoft.CSharp,然後訪問這樣的記錄:通過添加colulmn與表達COUNT(*) over()
public void Main()
{
dynamic result = Dts.Variables["result"].Value;
int rowCount = Convert.ToInt32(result.RecordCount);
Dts.TaskResult = (int)ScriptResults.Success;
}
您還可以添加一個行數列的SQL查詢如:
select *, count(*) over() row_count
from whatever
感謝 - 大衛 David http://blogs.msdn.com/b/dbrowne/
嗨!我會在這一個上給予賞金。如果您有興趣,請在2天后訪問此問題。謝謝。 – Steam