首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET MVC和MySQL中通过ODBC下拉列表绑定

在ASP.NET MVC和MySQL中通过ODBC下拉列表绑定
EN

Stack Overflow用户
提问于 2018-08-22 16:42:43
回答 1查看 237关注 0票数 0

我的问题:

尝试通过ODBC从visual (ASP.NET MVC项目)建立到使用MYSQL的远程服务器(Fishbowl)的连接。最终目标是将数据从数据库绑定到下拉列表。与实际从查询中的列中检索行不同,我在运行代码时得到如下输出:

我哪里出问题了?有什么建议或替代方法吗?谢谢!

控制器连接部分

代码语言:javascript
复制
DataSet ds = new DataSet();

        using (OdbcConnection connfb = new OdbcConnection("DSN=Fishbowl"))
        {
            using (OdbcCommand cmd = new OdbcCommand("select xyz from abc", connfb))
            {
                connfb.Open();
                cmd.ExecuteNonQuery();

                OdbcDataAdapter da = new OdbcDataAdapter(cmd);
                //da.Fill(dt);
                da.Fill(ds);

                List<AddInventoryModel> refNumList = new List<AddInventoryModel>();
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    AddInventoryModel robj = new AddInventoryModel();
                    robj.referenceNumber = ds.Tables[0].Rows[i]["num"].ToString();
                    refNumList.Add(robj);
                }
                Adi.refNumDD = refNumList;
            }
            connfb.Close();

模型

代码语言:javascript
复制
 public class AddInventoryModel
    {
    [Display(Name = "1. Reference Number: ")]
        [Required(ErrorMessage = "Reference Number is required!")]
        public string referenceNumber { get; set; }

    public List<AddInventoryModel> refNumDD { get; set; }

视图

代码语言:javascript
复制
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.referenceNumber, htmlAttributes: new { @class = "control-label col-md-100" })
        <div class="col-md-20">
            @Html.DropDownListFor(model => model.referenceNumber, new SelectList(Model.refNumDD, "referenceNumber"), "Choose reference number")
        </div>
    </div>
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 17:28:19

您正在使用SelectList构造函数的错误重载。

使用这种过载

代码语言:javascript
复制
public SelectList (System.Collections.IEnumerable items, 
                   string dataValueField, 
                   string dataTextField);

第二个参数是用于设置选项值属性值的value字段,第三个参数是用于呈现选项文本的文本字段。

由于您的控制器代码仅在

AddInventoryModel对象,您可以将其用于dataTextField和dataValueField。

代码语言:javascript
复制
@Html.DropDownListFor(model => model.referenceNumber, 
                       new SelectList(Model.refNumDD, "referenceNumber","referenceNumber"),
                       "Choose reference number")

对于呈现选择元素,我个人更喜欢在我的视图模型中使用集合SelectListItem,而不是自定义对象的集合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51971538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档