0
我與MySQL使用了附加價值變量:獲取字符串的DataReader
var var1 = datareader.GetString("something");
而在PostgreSQL我得到以下錯誤:
"cannot convert from string to int"
我怎樣才能得到的字符串來自PostgreSQL數據庫?
我與MySQL使用了附加價值變量:獲取字符串的DataReader
var var1 = datareader.GetString("something");
而在PostgreSQL我得到以下錯誤:
"cannot convert from string to int"
我怎樣才能得到的字符串來自PostgreSQL數據庫?
您可以
var var1 = datareader.GetString(reader.GetOrdinal("something"));
通常的GetString希望代表列在返回的記錄位置的整數得到它。但是任何特定的提供者都可以擴展GetString以直接從字符串值中獲取值(作爲MySql的提供者),但是如果他們不提供此擴展,則需要使用需要使用GetOrdinal的模式。當然你可以自己寫擴展名。只需在靜態類中添加此方法
public static object GetString(this NpgsqlDataReader source, string colname)
{
if(string.IsNullOrEmpty(colname))
throw ArgumentException("Need a column name");
return source.GetString(source.GetOrdinal(colname));
}
現在,您調用GetString的方式將起作用。