[英]Cannot convert char to an item in classlibrary in c#
对编码完全陌生,并认为在此问题之前我已经掌握了很多内容。 我想将新记录保存到 sql 但试图从另一个表中捕获所选项目的 ID。 以为我可以使用与捕获数据列表时相同的 foreach 结构,但这是 combobox 中的单个记录。 我在这里做错了什么?
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”
professionalid 是 int 类型。 它是在用户模型 class 中作为一个整体识别职业 class 的递增 id。 当用户选择此值时,他们从 Profession class 中选择 ProfessionName,这是一个类型字符串。 因此,我试图根据在 combobox 下拉列表中选择的 ProfessionName 从一个 class 中保存与该字符串关联的 ID。 用户永远不会看到也不会知道 ID qt 任何一点,这就是为什么他们 select 是 ProfessionName,而不是 ID 本身。
在您的代码行中:
foreach(Profession p in model.professionid)
model.prefessionid 是 char 类型的 object。 在该代码下,您将添加参数 p.id。 我假设这是您要查找的所选项目 ID? 您需要确定所选 id 来自哪个数据列表。 您说您要查找的值应该是 combobox 中的单个记录。 因此,在用户做出选择后,您应该获取 combobox 的 SelectedValue 属性或文本值,而不是 model.professionid。 为此,您不需要 foreach 语句。
我需要更深入的解释或代码来帮助您获得所需的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.