对编码完全陌生,我认为在这个问题之前我有一个很好的块。我想将一条新记录保存到sql,但试图从另一个表中捕获所选项的id。我想我可以使用与捕获数据列表时相同的foreach结构,但这是一个组合框中的单个记录。我做错什么了?
Public Usermodel createnewlogin(Usermodel model)
{
Using(IdataConnection connections = new System.data.Sqlclient.SqlConnection(
GlobalConfig.cnnstring(db))
{
var x = new DynamicParameters();
x.Add("@name1", model.user1);
x.Add("@name2", model.user2);
foreach(Profession p in model.professionid)
{
x = new DynamicParameters();
x.Add("@name1", model.user1);
x.Add("@name2", model.user2);
x.Add("@professionid", p.id);
Connection.Execute("dbo.madeup_insert", x,
commandType: CommandType.StoredProcedure);
}
return model;
}
}
foreach给出以下错误:“无法将类型‘char’转换为classlibrary.profession”
professionid的类型是int。它是递增的id,在usermodel类中将profession类作为一个整体进行标识。当用户选择这个值时,他们是从profession类中选择professionname,它是一个类型字符串。因此,我尝试将与一个类中的字符串相关联的id保存在另一个类中,该类基于在combobox下拉列表中选择的professionname。用户在任何时候都看不到也不知道id,这就是为什么他们选择professionname,而不是id本身。
1条答案
按热度按时间zbdgwd5y1#
在您的代码行中:
model.prefessionid是char类型的对象。在该代码下添加参数p.id。我假设这是您要查找的选定项目id?您需要确定所选id来自哪个数据列表。您说过您要查找的值应该是组合框中的单个记录。因此,在用户做出选择后,应该获取组合框的selectedvalue属性或文本值,而不是model.professionid。您不需要foreach语句。
我将需要一个更深入的解释或代码,以帮助您获得您所期待的结果。