0

ボタンのクリックで実行されるコードがあります。SQL データベースに接続し、2 つの値を読み取ります。私が達成したいのは、このコードを「DataManager」と呼ばれる別のクラスに配置し、ボタンをクリックしてこのクラスのメソッドを呼び出し、2 つの文字列をテキストボックスに取得することだけです。

string sReference = txtReference.Text;

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_SELECT_CONSHEAD_BY_ENQUIRY_NUMBER";
cmd.Parameters.AddWithValue("@EnquiryNumber", sReference);                        
cmd.Connection = con;
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();

while (sdr.Read())
{
    txtAccount.Text = sdr["Consignee"].ToString();
    txtAccount_Printed.Text = sdr["Consignee_Printed"].ToString();
}

con.Close();
con.Dispose();

私の方法は次のようになるはずだと思っていました

// Select from ConsHead by Reference Number
    public string SelectConsHead(string sReference, out string sAccount, out string sAccount_Printed)
    {
        sAccount_Printed = "";
        sAccount = "";
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ToString());
        SqlCommand cmd = new SqlCommand();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "sp_SELECT_CONSHEAD_BY_ENQUIRY_NUMBER";
        cmd.Parameters.AddWithValue("@EnquiryNumber", sReference);
        // Attach connection to command
        cmd.Connection = con;
        con.Open();
        SqlDataReader sdr = cmd.ExecuteReader();

        while (sdr.Read())
        {
            sAccount = sdr["Consignee"].ToString();
            sAccount_Printed = sdr["Consignee_Printed"].ToString();
        }
        con.Close();
        con.Dispose();


        return sAccount + sAccount_Printed;

    }

メソッドを呼び出して、対応する値をテキストボックスに取得する方法がわかりません。

4

2 に答える 2

1

答えは、ASP.NET Web アプリと Windows フォーム アプリケーションのどちらを使用しているかによって異なります。

ASP.NET に基づいて回答できます。

まず、DataManager クラスの SelectConsHead メソッドを静的にするか、ボタンとテキスト ボックスを含むページのコード ビハインドで DataManager クラスの新しいインスタンスを作成する必要があります。静的ルートに進むと、メソッドの見出しは次のようになります。

public static string SelectConsHead

次に、ボタンとテキスト ボックスを含むページのコード ビハインドで、ボタンのクリック イベント ハンドラーで SelectConsHead メソッドを呼び出します。

非静的ルートに進む場合、クラスをインスタンス化し、コードビハインドでそのメソッドを呼び出す方法は次のとおりです。

DataManager dm = new DataManager();
dm.SelectConsHead(your parameters here);

また、メソッドを修正する際には、Ronnie のアドバイスを参考にしてください。

于 2013-06-27T13:00:16.390 に答える