我用它来为MySQL增加变量值:
var var1 = datareader.GetString("something");
但是使用PostgreSQL我会收到以下错误:
“无法从字符串转换为int”
如何从PostgreSQL数据库中获取字符串?
答案 0 :(得分:1)
你可以用
获得它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的方式将起作用。