C# 组合框项目不可见

C# 组合框项目不可见,c#,ms-access,combobox,oledbdatareader,C#,Ms Access,Combobox,Oledbdatareader,我已经编写了以下代码来在ComboBox中查看我的分数,我在populate()方法中编写了这些代码,我称之为表单加载,但它显示的是空的ComboBox。请告诉我这个代码出了什么问题 我为DatabaseConnection创建了一个单独的类 public void populate() { DatabaseConnection connection = new DatabaseConnection(); OleDbCommand cmd = new Ol

我已经编写了以下代码来在ComboBox中查看我的分数,我在
populate()
方法中编写了这些代码,我称之为表单加载,但它显示的是空的ComboBox。请告诉我这个代码出了什么问题

我为DatabaseConnection创建了一个单独的类

public void populate()
    {
        DatabaseConnection connection = new DatabaseConnection();
        OleDbCommand cmd = new OleDbCommand("Select score from Info", connection.Connection());
        connection.Connection().Open();
        OleDbDataReader reader = cmd.ExecuteReader();

        while (reader.Read())
        {

            comboBox1.Items.Add(reader[0].ToString());

        }
        connection.Connection().Close();


    }

在打开
OleDbConnection
之前,当代码尝试创建
OleDbCommand
对象时,我也看到过类似的问题。尝试执行
connection.connection().Open()然后创建
cmd
对象

编辑 以下是适用于我的确切代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace comboTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            var con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\kirmani\Documents\Score.accdb");
            con.Open();
            var cmd = new OleDbCommand("SELECT Score FROM Info", con);
            OleDbDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                comboBox1.Items.Add(rdr[0].ToString());
            }
            con.Close();
        }
    }
}

在填充命令之前,应始终打开连接。 还可以使用try-catch语句来防止任何未处理的SQL异常。 试着这样做:

    public void populate()
    {
       DatabaseConnection connection = new DatabaseConnection();
       try{
       connection.Connection().Open();
       OleDbCommand cmd = new OleDbCommand;
       cmd.Connection = connection.Connection();
       cmd.ComandText = "Select score from Info"
       OleDbDataReader reader = cmd.ExecuteReader();

           while (reader.Read())
           {   
                comboBox1.Items.Add(reader[0].ToString());
           }
        }
       catch(SqlException e){



      }
      finaly{
        connection.Connection().Close();
      }


}

没问题,信息表中有记录吗?是否确实连接到了正确的数据库?是的,我连接到了正确的数据库,Insert和select命令工作正常,但此命令未显示任何结果。然后,我将尝试了解问题是否存在于OleDbDataReader循环或combobox.Items.Add中。使用调试器,您可以在进入循环之前放置一个断点,并逐行检查从数据库返回的内容(如果有)。请在回答中添加解释。它仍然没有给出任何解释output@TahaKirmani我用适合我的代码编辑了我的答案。