从 var 获取值

问题描述 投票:0回答:1

我已经有了这段代码,我需要从数据库中获取特定列的值。

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;
c# wpf sqlite
1个回答
0
投票

这看起来很精致。在这种情况下,您可以将行从此转换为

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});
© www.soinside.com 2019 - 2024. All rights reserved.