我需要將值分配給FetchSize。可以使用refelection從數據讀取器接收rowsize。我們可以將OdbcDataReader.FetchSize(= rowSize * rows)硬編碼爲固定數量的行嗎? (Oracle數據庫提供程序)
但我需要行數,我可以harcode作爲rowsize * 100000(而不是rowcount)。
executionataReader將用於多個存儲過程,無法獲取rowcount。
OracleDataReader dr = command.ExecuteReader();
Int32 rowCount = 100000; //in this case actual result will be just 20k only. will it have any issue?
FieldInfo fi = dr.GetType().GetField("m_rowSize", BindingFlags.Instance | BindingFlags.NonPublic);
Int32 rowSize = Convert.ToInt32(fi.GetValue(dr));
dr.FetchSize = rowCount * rowSize;
while (dr.Read())
{
string myField = (string)dr[0];
Console.WriteLine(myField);
}
會有什麼缺點通過修復?