数据绑定 DropDownList 与来自 Ms access 2013 的 OleDbDataReader
Posted
技术标签:
【中文标题】数据绑定 DropDownList 与来自 Ms access 2013 的 OleDbDataReader【英文标题】:data bind DropDownList with OleDbDataReader from Ms access 2013 【发布时间】:2014-12-31 09:59:28 【问题描述】:我正在尝试将我的下拉列表与我的数据库 MS Access 2013(accdb 文件)数据绑定这是我的代码
protected void Page_Load(object sender, EventArgs e)
string str = "Provider=Microsoft.ACE.OleDB.12.0; Data Source=C:\\Users\\Dima\\Documents\\Visual Studio 2013\\Projects\\networklab1\\bin\\weblabdb.accdb";
OleDbConnection db = new OleDbConnection(str);
db.Open();
string st = "select areaName from area;";
OleDbCommand dbc = new OleDbCommand(st, db);
OleDbDataReader read = dbc.ExecuteReader();
DropDownList1.DataSource = read;
DropDownList1.DataBind();
read.Close();
db.Close();
我得到的是一行“System.Data.Common.DataRecordInternal” 我的错误是什么以及如何解决这个问题!!! 谢谢你
【问题讨论】:
【参考方案1】:您缺少检查Postback
以及您缺少DataTextField
和DataValueField
protected void Page_Load(object sender, EventArgs e)
if(!Page.IsPostBack)
string str = "Provider=Microsoft.ACE.OleDB.12.0; Data Source=C:\\Users\\Dima\\Documents\\Visual Studio 2013\\Projects\\networklab1\\bin\\weblabdb.accdb";
OleDbConnection db = new OleDbConnection(str);
db.Open();
string st = "select areaName from area;";
OleDbCommand dbc = new OleDbCommand(st, db);
OleDbDataReader read = dbc.ExecuteReader();
DropDownList1.DataSource = read;
DropDownList1.DataTextField="areaName"; //missing this
DropDownList1.DataValueField="areaName"; //missing this
DropDownList1.DataBind();
read.Close();
db.Close();
【讨论】:
@PanteleevDima 如果您认为这有帮助,请点赞并将其标记为答案【参考方案2】:您缺少 DataTextField 和 DataValueField。试试这个-
protected void Page_Load(object sender, EventArgs e)
string str = "Provider=Microsoft.ACE.OleDB.12.0; Data Source=C:\\Users\\Dima\\Documents\\Visual Studio 2013\\Projects\\networklab1\\bin\\weblabdb.accdb";
OleDbConnection db = new OleDbConnection(str);
db.Open();
string st = "select areaName from area;";
OleDbCommand dbc = new OleDbCommand(st, db);
OleDbDataReader read = dbc.ExecuteReader();
DropDownList1.DataSource = read;
DropDownList1.DataTextField="ShownTextFieldFromDatabaseResults";;
DropDownList1.DataValueField="ValueFieldFromDatabaseResults";
DropDownList1.DataBind();
read.Close();
db.Close();
【讨论】:
以上是关于数据绑定 DropDownList 与来自 Ms access 2013 的 OleDbDataReader的主要内容,如果未能解决你的问题,请参考以下文章
在 KendoGrid 中重新绑定 DropDownList,取决于在同一行的其他 DropDownList 中选择的值