-1

ここにいる誰かが私を助けてくれるか、正しい方向に向けてくれることを願っています。C#でアプリケーションを作成しようとしていますが、DB_ConnectionとMainFormの2つのクラスがあります。DB_Connectionはデータベースへの接続が行われる場所であり、MainFormは私のインターフェースを含むメインフォームです。

苦労していることに気づきました。DB_ConnectionフォームからMainFormに文字列を渡そうとしても、成功しませんでした。これが行うことになっているのは、dbからクエリを取得し、それを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()

conn.Close()次に、return句を追加します(これはステートメントの直後にある必要があります)。

return usr;
于 2013-02-07T21:35:55.123 に答える