【发布时间】:2021-07-20 04:29:47
【问题描述】:
对编码完全陌生,并认为在此问题之前我已经掌握了很多内容。我想将新记录保存到 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 类型。它是在 Usermodel 类中将 Profession 类作为一个整体标识的递增 id。当用户选择此值时,他们从 Profession 类中选择 ProfessionName,这是一个类型字符串。因此,我试图根据组合框下拉列表中选择的 ProfessionName 将与该字符串关联的一个类保存在另一个类中。用户永远不会看到也不会知道 id qt,这就是他们选择 ProfessionName 而不是 id 本身的原因。
【问题讨论】:
-
model属于什么类型,该类型是如何定义的?看起来professionid属性是char的某种集合。 -
抱歉,我想我需要包含整个内容。
-
当您使用它时,请确保您的代码能够真正编译。它看起来像是在 Word 中自动大写的。它看起来不像 C# 代码。
-
我更新了它,是的,它只是自动大写我手机上的所有内容。但在视觉工作室中,一切都得到了妥善处理。
-
如果您从编辑器复制实际代码并将其粘贴到问题中,则堆栈溢出效果会更好。您和那些愿意帮助您的人可以确定您的问题不是由于转录错误造成的。