C# 组合框未显示来自数据库的信息

C# 组合框未显示来自数据库的信息,c#,C#,我必须创建一个自动柜员机应用程序来访问包含客户记录样本的数据库。我在组合框中显示accountInformation表(数据库)中的帐号时遇到问题。我非常确定我正确地创建了数据库连接,并且我认为我的代码会在组合框中显示数字,所以我不确定问题出在哪里。组合框属性中是否有我需要更改的内容? 这是我的密码: using SQLDll; namespace WindowsFormsApplication14 { public partial class Form1 : Form { priv

我必须创建一个自动柜员机应用程序来访问包含客户记录样本的数据库。我在组合框中显示accountInformation表(数据库)中的帐号时遇到问题。我非常确定我正确地创建了数据库连接,并且我认为我的代码会在组合框中显示数字,所以我不确定问题出在哪里。组合框属性中是否有我需要更改的内容? 这是我的密码:

using SQLDll;

namespace WindowsFormsApplication14
{

public partial class Form1 : Form
{
    private Connection myConnection;
    private Statement myStatement;
    private ResultSet myResultSet;
    String databaseURL = "http://www.boehnecamp.com/phpMyAdmin/razorsql_mysql_bridge.php";


    public Form1()
    {
        InitializeComponent();

        try
        {
            //connect to database
            SQL sql = new SQL();
            myConnection = sql.getConnection(databaseURL);
            //create Statement for executing SQL
            myStatement = myConnection.createStatement(databaseURL);
        }
        catch (Exception)
        {
            Console.WriteLine("Cannot connect to database server");
        }
        //close statement and database connection 
       myStatement.close();
       myConnection.close();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
       loadAccountNumbers();
    }

    public void setText(string text)
    {


    }
    //load account numbers to ComboBox
    private void loadAccountNumbers()
    {
        //get all account numbers from database
        try
        {
            myResultSet = myStatement.executeQuery("SELECT accountNumber FROM accountInformation");
            // add account numbers to ComboBox
            while (myResultSet.next())
            {
                accountNumberComboBox.Items.Add(myResultSet.getString("accountNumber"));
            }
            myResultSet.close(); // close myResultSet
        }//end try
        catch (Exception)
        {
            Console.WriteLine("Error in loadAccountNumbers");
        }
    }//end method to loadAccountNumbers

我建议将所有内容都放在一种方法中。它更具可读性,即使发生异常,您也可以确保关闭所有内容

公共部分类Form1:Form { 私有连接; 私人陈述;
私有结果集myResultSet; 字符串数据库URL=”http://www.boehnecamp.com/phpMyAdmin/razorsql_mysql_bridge.php“


我发现了问题所在。我知道我必须在某个地方调用loadAccountNumbers(),但我不确定在哪里。我将它放在public Form1()中,解决了我的问题!感谢所有的帮助。

您将myResultSet声明为什么?(类型、值等)当您单步执行代码时会发生什么?您是否在(myResultSet.next())loop?根据调用方法的位置或方式,可能需要插入一个“combobox.refresh())'在方法调用之后。即使是单线程程序,有时也会出现这种情况-我前几天在编写代码的项目中遇到过这种情况。你肯定应该在该循环上放置断点,看看是否命中它。调试器是你的朋友!private ResultSet myResultSet;我将尝试在我同意你的代码更具可读性,但如果我改变了我的代码,我就不会满足“要求”。
public Form1()
{
    InitializeComponent();
    loadAccountNumbers();
}

//load account numbers to ComboBox
private void loadAccountNumbers()
{
    SQL sql = new SQL();
    using (myConnection = sql.getConnection(databaseURL))
    using (myStatement = myConnection.createStatement(databaseURL))
    using (myResultSet = myStatement.executeQuery("SELECT accountNumber FROM accountInformation"))
    {
        // add account numbers to ComboBox
        while (myResultSet.next())
            accountNumberComboBox.Items.Add(myResultSet.getString("accountNumber"));
    }
}