我已经有了这段代码,我需要从数据库中获取特定列的值。
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
var sql = "select * from " + tablename + " where ID = " + itemid;
var data1 = cnn.QuerySingle(sql)
}
我知道可以这样做
string s = data1.ColumnName;
但是有没有办法让我以编程方式设置列引用,如下所示?
string test = "Column1";
string s = data1.test;
这看起来很精致。在这种情况下,您可以将行从此转换为
IDictionary<string, object>
,并使用索引器。
var map = (IDictionary<string,object>)data1;
var value = map[columnName];
请注意,注释是正确的,您应该参数化此查询。不过,您无法参数化表名称:
var sql = "select * from " + tablename + " where ID = @itemid";
var data1 = cnn.QuerySingle(sql, new {itemid});