C# Dapper Querylist返回类型
我的代码如下所示C# Dapper Querylist返回类型,c#,asp.net-mvc,dapper,C#,Asp.net Mvc,Dapper,我的代码如下所示 using (IDbConnection cnn = new SqlConnection(GetConnectionString())) { var result = cnn.QuerySingle(sql, parameters); return result; } 它位于类中的方法内部,但这不重要。QuerySingle据说会返回动态类型,但我以前从未使用过它。当我调试这段代码时,它返回的结果是这样的 {{DapperRow, Tcode = 'eee
using (IDbConnection cnn = new SqlConnection(GetConnectionString()))
{
var result = cnn.QuerySingle(sql, parameters);
return result;
}
它位于类中的方法内部,但这不重要。QuerySingle据说会返回动态类型,但我以前从未使用过它。当我调试这段代码时,它返回的结果是这样的
{{DapperRow, Tcode = 'eeeee', Hashedpw = 'NF886jMDl5imyMj0ThDIxA==', Salt = 'Z+HHq6Rt60FPnAf80Lg4Dg=='}}
我该怎么读呢?它们是键值对,因为其背后的逻辑不起作用,它不像列表或数组那样起作用。我完全迷路了,不知道这会带来什么。我只需要这些值,而不是dapperrow、tcode、hashedpw和salt。所以基本上,我需要的回报是
['eeeee', 'NF886jMDl5imyMj0ThDIxA==','Z+HHq6Rt60FPnAf80Lg4Dg==']
有人能帮我吗?目前您正在使用弱类型的
QuerySingle()
,它将始终返回键值对结果。如果只想检索值,应该像这样使用强类型QuerySingle()
var result= connection.QuerySingle<TYPE>(sql, parameters);
如果您返回多个结果,那么您可以在代码中使用它,例如QuerySingle
,显然,您必须这样使用QuerySingle()
希望这将对您有所帮助。请查看此以获取有关QuerySingle的帮助
如果您创建另一个类,类似这样的内容
public class TestClass
{
public string Tcode { get; set; }
public string Hashedpw { get; set; }
public string Salt { get; set; }
}
var result = cnn.QuerySingle<TestClass>(sql, parameters);
。。。把你的QuerySingle呼叫改成这样
public class TestClass
{
public string Tcode { get; set; }
public string Hashedpw { get; set; }
public string Salt { get; set; }
}
var result = cnn.QuerySingle<TestClass>(sql, parameters);
。。。将导致eeeee
出现在调试窗口之外
这有帮助吗?我该如何将其放入列表或字符串数组?@coder如果返回的是一列字符串和多行,则:
var result=connection.Query(sql,parameters).AsList()代码>;如果要返回多个列,则需要提供更多context@coder例如,另一种惰性的方法是“值元组”:var row=connection.QuerySingle(sql,parameters)代码>-然后看看row.tcode
,row.pwhash
等等(这个例子是一行多列),我确实从一行返回了多个列。我调用的函数包含一个tcode,我在数据库中查找它。找到后,函数应返回一个列表或数组等,以及tcode、哈希密码和salt。@编码器如果只获取一行,为什么需要列表/数组/etc?再次:请参见上面的值元组示例,或者Thunder的答案(这使得So_oP对
的使用更加明确)。列表/数组=多行。单行应该是一个具有多个属性的结构或类…省略号太多。。。你介意。。。删除其中一些。。。?或者更好的是,所有这些……我使用了一些类似的东西,正如在对不同答案的评论中所建议的那样。非常感谢。