C# Dapper-提取已存储在局部变量中的单个值
我正在将Dapper与存储过程一起使用C# Dapper-提取已存储在局部变量中的单个值,c#,dapper,C#,Dapper,我正在将Dapper与存储过程一起使用 public List<Sifrarnik> ChangeOpisText(string opis) { using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Cloud"].ConnectionString)) { if (db.Sta
public List<Sifrarnik> ChangeOpisText(string opis)
{
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Cloud"].ConnectionString))
{
if (db.State == ConnectionState.Closed)
{
db.Open();
}
var response = db.Query<Sifrarnik>("dbo.spChangeOpisText @opis",
new
{
opis = opis
}).ToList();
return response;
}
}
当我从用于Dapper的数据模型中检查prints列表中变量的类型时 如果您计划检索一行,为什么要返回列表?只需返回一个
Sifrarnik
的实例
您可以使用从返回的枚举中获取实例
public Sifrarnik ChangeOpisText(字符串opis)
{
使用(IDbConnection db=new SqlConnection(ConfigurationManager.ConnectionString[“Cloud”].ConnectionString))
{
if(db.State==ConnectionState.Closed)
{
db.Open();
}
var response=db.Query
(
“dbo.spChangeOpisText@opis”,
新的
{
opis=opis
}
)
.Single();
返回响应;
}
}
我得到的无法隐式地将类型“erp.Sifrarnik”转换为“System.Collections.Generic.List
。在我的代码示例中没有列表
。所以它一定是你的代码里的东西。您是否试图将ChangeOpisText()
的结果存储在列表中?我有一个名为Sifrarnik的类,它映射数据库中的一个表。根据我从文档中读到的关于Dapper的内容。。Dapper将响应映射到一个类,这是一个如下列表:namespace erp{public class Sifrarnik{public int id{get;set;}public string prefiks{get;set;}public string opis{get;set;}}}
您没有回答我的问题。我的代码在任何地方都不包含System.Collections.Generic.List的声明,因此它必须是您的。要使用单个实例还是列表?因此,这里的问题是,您不知道如何从列表中的单个对象实例中读取属性?这就总结了吗?仅供参考,您不需要检查并调用状态来打开连接。Dapper的Query
方法可以帮你做到这一点。
comboBox1.DataSource = response;
comboBox1.DisplayMember = "column-name";
comboBox1.ValueMember = "column-name";
public Sifrarnik ChangeOpisText(string opis)
{
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Cloud"].ConnectionString))
{
if (db.State == ConnectionState.Closed)
{
db.Open();
}
var response = db.Query<Sifrarnik>
(
"dbo.spChangeOpisText @opis",
new
{
opis = opis
}
)
.Single();
return response;
}
}