gdp*_*gdp 3 c# sql-server dapper
嗨,我正在努力与Dapper握手.
我的情况是我想从查询中将两个值拉入两个单独的字符串.我不确定我是否会以正确的方式解决这个问题,但这就是我正在做的事情:
string sql = @"Select type, name
FROM ZipData
WHERE Zip = @zip";
using (var multi = conn.QueryMultiple(sql, new { zip = zip }))
{
string result = multi.Read<string>().SingleOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
我得到了无法访问已处置的对象.对象名称:'GridReader'.当试图读取第二个字符串时.事情是它正确获取第一个值并且在我想要的读者中有两个字段.我确定我滥用api.
我在这做错了什么?我用谷歌搜索,但可以找到一个具体的例子.
Kir*_*oll 10
你误用了QueryMultiple.这是为返回多个结果集的复合SQL语句定义的.就像是:
SELECT Foo FROM MyTable;
SELECT Bar FROM MyOtherTable;
Run Code Online (Sandbox Code Playgroud)
另一方面,您尝试从单个结果集中获取两个不同的列,因此您应该只使用常规方法:Query
var result = conn.Query(sql, new { zip = zip }).Single();
var type = result.type;
var name = result.name;
Run Code Online (Sandbox Code Playgroud)
Query返回一个可枚举的(因为通常一个查询可以返回多行).看来你只想要一行,所以我们最后调用.Single才能得到那一行.从那里,返回类型是dynamic这样你可以简单地引用你的SELECT语句中的列隐含的属性:type和name.
| 归档时间: |
|
| 查看次数: |
9127 次 |
| 最近记录: |