【问题标题】:OleDBReader returning System.Data.Oledb.OleDbDataReader instead of the valuesOleDBReader 返回 System.Data.Oledb.OleDbDataReader 而不是值
【发布时间】:2016-04-19 21:55:24
【问题描述】:

我目前在将一些字段从我的数据库返回到我的列表框中时遇到了一些问题。

我返回的文本是 System.Data.Oledb.OleDbDataReader 而不是我想要从数据库中取出的项目。

        private void lbzoektermen_MouseHover(object sender, EventArgs e)
    {

        OleDbConnection connection = new OleDbConnection();
        connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\martijn\Dropbox\Proftaak Periode 2 Identity\Database11.accdb;
        Persist Security Info=False;";
        connection.Open();


        OleDbCommand command = new OleDbCommand();
        command.Connection = connection;
        command.CommandText = "SELECT * from Zoekcriteria";
        OleDbDataReader reader = command.ExecuteReader();

        if(reader.HasRows)
        {
            lbzoektermen.Items.Add(reader);
        }
        connection.Close();

我应该为此使用 Overwrite Tostring 方法吗?我有点迷茫

亲切的问候, 马丁

【问题讨论】:

    标签: c# sql database object reader


    【解决方案1】:

    您需要向阅读器添加索引才能获取其中一个字段。例如。如果您想要第一个字段,请像这样更改循环:

    if(reader.HasRows)
    {
        lbzoektermen.Items.Add(reader[0]);
    }
    

    【讨论】:

    • 如果我这样做,它表示该行中没有值,所以我猜我的查询有问题吗?
    【解决方案2】:

    下面的代码行是错误的,因为您将返回的阅读器对象添加到列表框项目集合,而您应该将阅读器对象附加到列表框控件的 DataSource 属性

    lbzoektermen.Items.Add(reader);
    

    应该是

    lbzoektermen.DataSource = reader;
    

    如果是ASP.NET 应用程序,您可能还想在lbzoektermen 控件上调用DataBind() 方法。

    根据您的评论,由于您使用的是列表框控件,因此您需要添加一个项目。您需要更改查询并选择要添加到控件的特定列

    command.CommandText = "SELECT * from Zoekcriteria";
    

    改成

    command.CommandText = "SELECT columns1 from Zoekcriteria";
    

    【讨论】:

    • 仍然给出与 Lbzoektermen.Items.Add(reader); 相同的结果;
    • 如果我尝试这样做,它会在 OleDbDataReader reader = command.ExecuteReader();错误信息说缺少参数
    • 什么参数?您没有将任何参数传递给您的查询。这是您的实际代码吗?如果没有,请发布实际代码。
    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 2019-11-23
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    相关资源
    最近更新 更多