0

Class1クエリから値を取得するこのクラス ( ) があります。今、オブジェクト指向にしたいので、そのように書きました。問題は、TextBox( TicketNum) が値を返さず、フォームに表示しないことです。どうしてか分かりません。ヘルプ。

 public partial class Main : System.Web.UI.Page
{
   private String _TicketNum;

    public String TicketNum
    {
        get { return _TicketNum; }
        set { _TicketNum = value; }
    }
}

  public class Class1
{
    Main main = new Main();
    public void SelectTop1()
    {
        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
        {

            using (SqlCommand com_retrieve = new SqlCommand("usp_SelectTop1Ticket", con))
            {
                com_retrieve.CommandType = CommandType.StoredProcedure;
                con.Open();
               try
                {                     
                    main.TicketNum = com_retrieve.ExecuteScalar().ToString();
                    MessageBox.Show("Ticket Has been saved. Your Ticket Number: " + com_retrieve.ExecuteScalar().ToString(), "Ticket Filed");
                }
                catch (SqlException)
                {
                    MessageBox.Show("The database has encountered an error");
                }
                catch (Exception)
                {
                    MessageBox.Show("The server has encountered an error");
                }
            }
        }
    }
}

  protected void btn_Save_Click(object sender, EventArgs e)
    {
         Class1 selectTop1 = new Class1();
            selectTop1.SelectTop1();
    }
4

2 に答える 2

0

以下を見てください。

public partial class Main : System.Web.UI.Page
{
    public String TicketNum
    {
        get { return textbox.Text; }
        set { textbox.Text = value; }
    }

    protected void btn_Save_Click(object sender, EventArgs e)
    {
        Class1 selectTop1 = new Class1();
        TicketNum = selectTop1.SelectTop1();
    }
}

public class Class1
{
    public string SelectTop1()
    {
        // assign the value from SQL to the response variable
        string response = "test";
        return response;
    }
}

次の点に注意してください。

  • プロパティは、プロパティTicketNumとの間で値を設定/取得しtextbox.Textます
  • クラス内にMainクラスのインスタンスを作成する必要はありません (間違って読んでください/ なぜそうするのですか? )Class1
  • このSelectTop1メソッドは、クラスで使用される文字列値を返します(静的にすることもできるので、呼び出すためMainにクラスのインスタンスは必要ありません)。Class1
  • このMessageBoxクラスは WinForms で使用されます。アラートには JavaScript を使用する必要があるかもしれません
于 2013-07-01T08:01:56.110 に答える