2013-07-01 2 views
-2

SQL 쿼리에서 값을 가져 와서이 값을 텍스트 상자에 배치하는 코드가 있습니다. 나는 그것을 다른 클래스에 넣고, 메인 클래스에서 접근하려고합니다. 하지만 내 문제는 클래스가 기본 클래스에서와 같이 버튼 (txtbox_ticketnum)을 인식하지 못한다는 것입니다. 도움!다른 클래스에서 단추 컨트롤을 볼 수 없습니다.

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 
       { 
        txtbox_ticketnum.Text = 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"); 
       } 
      } 
     } 
+5

그럼 더 자신의 재산 (더 나은 솔루션)을 추가하지 - 클래스의 어떤 인스턴스를 당신이 그것을 기대 한 가지는? 나는 당신이 잠시 동안 SQL과 GUI를 둘 것을 제안하고, C#의 핵심을 배울 것을 제안한다. - 다른 객체 등을 어떻게 참조 할 것인가? 이것은 콘솔 응용 프로그램 인 IMO를 통해 가장 잘 볼 수있다. 일단 C#의 기본 사항에 확신이 있다면 더 복잡한 시나리오에 적용하는 것이 더 쉽습니다. (UI 쓰레드에서 SQL 질의를 수행해서는 안되기 때문에 스레딩이나 비동기에 대해 배워야합니다.) –

+0

Visual Studio 솔루션 탐색기에서 별도의 레이어 (프로젝트)를 사용하도록 제안합니다. SQL 쿼리를 별도의 클래스로 유지할 수 있습니다. 처음부터 @ JonSkeet의 조언에 따라 공개 액세스 권한을 부여 할 수 있으며 어떤 종류의 액세스가 제공 될지 결정할 수 있습니다. SQL을위한 별도의 공용 레이어를 가짐으로써 GUI 레이어 (WindowForms가있는 프로젝트)로 참조하고 사용하게됩니다. 더 많은 정보를 원하시면, 글을 참고하겠습니다. – meorfi

+0

정확한 [다른 클래스의 액세스 양식 구성 요소] (http://stackoverflow.com/questions/6803970/) 또는 [다른 형식의 액세스 클래스]의 중간 덤프 (http://stackoverflow.com/questions/15696066)/다른 클래스의 액세스 클래스) 또는 [다른 클래스의 변수 액세스] (http://stackoverflow.com/questions/4090773/)를 참조하십시오. 질문/4057843 /) 또는 [다른 클래스 메서드에 액세스] (http://stackoverflow.com/questions/16694449/) 또는 ... – quetzalcoatl

답변

0

(txtbox_ticketnum) 당신의 버튼을 개인 것 같다 - 그 기본 Visual Studio를 동작입니다. 당신은 (이하 "대중"을 "수정"는 txtbox_ticketnum의 속성을 설정)는 변경할 수 있습니다, 또는 는

public partial class MyForm { 
    ... 
    public String TicketNumText { 
    get { 
     return txtbox_ticketnum.Text; 
    } 
    set { 
     txtbox_ticketnum.Text = value; 
    } 
    } 

    ... 

    MyForm form = new MyForm(); 

    ... 

    con.Open(); 

    try 
    { 
     form.TicketNumText = com_retrieve.ExecuteScalar().ToString(); 
     ... 
+0

버튼의 속성은 어디에서 추가 할 예정입니까? – user1954418

+0

txtbox_ticketnum이 –

+0

인 클래스에서 오류가 발생했습니다. 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. "txtbox_ticketnum.Text = value; "줄 때문에 – user1954418

관련 문제