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

我哪里出问题了?有什么建议或替代方法吗?谢谢!
控制器连接部分
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();模型
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; }视图
@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>
}发布于 2018-08-22 17:28:19
您正在使用SelectList构造函数的错误重载。
使用这种过载
public SelectList (System.Collections.IEnumerable items,
string dataValueField,
string dataTextField);第二个参数是用于设置选项值属性值的value字段,第三个参数是用于呈现选项文本的文本字段。
由于您的控制器代码仅在
AddInventoryModel对象,您可以将其用于dataTextField和dataValueField。
@Html.DropDownListFor(model => model.referenceNumber,
new SelectList(Model.refNumDD, "referenceNumber","referenceNumber"),
"Choose reference number")对于呈现选择元素,我个人更喜欢在我的视图模型中使用集合SelectListItem,而不是自定义对象的集合。
https://stackoverflow.com/questions/51971538
复制相似问题