繁体   English   中英

无法将 char 转换为 c# 中的类库中的项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM