-1

我希望这里有人可以帮助我或为我指明正确的方向。我正在尝试用 C# 创建一个应用程序,我有 2 个类,DB_Connection 和 MainForm。DB_Connection 是连接到数据库的地方,而 MainForm 是包含我的界面的主窗体。

我发现自己很难过,我试图将一个字符串从我的 DB_Connection 表单传递到 MainForm 都没有成功。这应该做的是从数据库中获取一个查询,将其分配给usr变量并将该变量传递给 MainForm ,它将由消息框收集(作为示例),所有这一切都只需单击一个按钮。

任何帮助表示赞赏,谢谢!

DB_Connection findUsrn 方法:

public void findUsrn()
    {
        try {
            conn.Open();
            if(conn.State.ToString() != "Open")
            {
                MessageBox.Show("Could not connect to the database");
                return;
            }
            else
            {
                sql = "SELECT First_Name FROM all_users";
                cmd = new MySqlCommand(sql, conn);
                rdr = cmd.ExecuteReader();
                while (rdr.Read()) {
                usr = rdr.GetString(0);
                }
                rdr.Close();
                conn.Close();
            }
        } catch (Exception ex) {
            MessageBox.Show(ex.Message);
            return;
            throw;
        }
    }

MainForm BtnSearchClick 事件:

void BtnSearchClick(object sender, EventArgs e)
    {
        DB_Connection frmDB = new DB_Connection();
        string showUsr = frmDB.getString();
        MessageBox.Show(showUsr);
    }
4

1 回答 1

1

你的findUsrn方法是void,所以它不返回任何东西。您的代码读取数据库并将结果放入局部变量usr中,但随后不对其执行任何操作。由于usr是本地的,因此当方法失去作用域时它会丢失。您可以让该方法返回一个字符串:

public string findUsrn()

然后添加一个 return 子句(这应该在conn.Close()语句之后):

return usr;
于 2013-02-07T21:35:55.123 回答