【问题标题】:data bind DropDownList with OleDbDataReader from Ms access 2013数据绑定 DropDownList 与来自 Ms access 2013 的 OleDbDataReader
【发布时间】:2023-03-28 11:35:01
【问题描述】:

我正在尝试将我的下拉列表与我的数据库 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” 我的错误是什么以及如何解决这个问题!!! 谢谢你

【问题讨论】:

    标签: c# asp.net ms-access ms-access-2013


    【解决方案1】:

    您缺少检查Postback 以及您缺少DataTextFieldDataValueField

    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();
    
        }
    

    【讨论】:

      猜你喜欢
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      相关资源
      最近更新 更多