我們對來自VB6的舊項目運行了一個轉換工具。SqlDataReader的擴展方法?
我們用Ado.Net代替OLEDB,用SqlDataReaders代替RecordSets。
但是轉換後的代碼總是做rs.Fields['FirstName']
參考,這是我的猜測是rs['FirstName']
與數據庫閱讀器(如RS現爲q SqlDataReader的。
而不是通過所有的代碼去的,是有辦法,我可以創建SqlDataReader的擴展方法,那麼這將利用「Fields['FieldName']
」
這是我目前的嘗試:?
public static class SqlUtils
{
public static object Fields(this SqlDataReader dataReader, string fieldname)
{
return dataReader[fieldname];
}
}
然而,這一點也適用:
Console.WriteLine(reader.Fields("First").ToString());
我需要處理:
Console.WriteLine(reader.Fields["First"].ToString());
注,[],而不是()。
也許,如果不密封,你可以創建一個自定義的類繼承的DataReader和創建你自己的類索引。否則,我看不到任何選擇。 – Silvermind
謝謝Silvermind - 雖然接受['fieldname']參數,但該方法看起來如何?我想這就是你所說的索引器 - 但我不確定那是什麼。 – Craig
爲什麼不運行查找+替換? – cbp