2016-07-18 8 views
0

처음에는 C#에서 프로그래밍이 매우 새로워 졌기 때문에 미안합니다. 나는이 문제를 공격하는 방식에 중대한 문제가 있으며 내 능력으로 해결하는 방법을 알고있다. SQL 쿼리를 통해 일부 데이터를 추출하려는 데이터베이스가 있으며이를 단추 그룹에 나타내려고합니다. 모든 단추에는 추출 데이터가 있습니다. 이 버튼을 동적으로 생성하고 싶지만 무지 때문에 나는 서클에 들어갑니다. DataGridViews에 대해 많은 것을 읽었지 만 실제로 할 수있는 현실적인 방법은 없습니다 (당연히 현실적입니다).데이터 테이블의 폼에서 동적 객체 생성 C#

내가 달성 한 것은이 DB를 읽고 데이터 테이블에 데이터를 넣을 수있는 코드를 만드는 것입니다.이 코드를 중간 단계로 사용하여 VS를 만들 수있는 VS를 만들 수 있다고 생각하면 이 datatable을 읽고있는 객체들, 정보를 담고있는 버튼을 생성하고 (그리고 아마도 datatiptool 같은 것을 통해 그것을 보여줄 것입니다), datatable의 "box"마다 하나씩 그리고 datatable과 비슷하지만 상호 작용이 가능한 버튼을 보여줍니다.

그럼, 데이터 테이블을 만드는 코드가 작동하고 8 x 12-> 96 포지션의 테이블이 있는데 어떻게 읽을 수 있고 일종의 "그리드"버튼으로 만들 수 있습니까?

어떤 도움이나 조언이 매우 사전에 감사 감사하겠습니다 :)

+0

당신이 뭘 하려는지 명확하지 않다. 데이터베이스는 데이터로 무엇을 포함합니까? 당신이 단추를 통해 제시하고있는 것은 무엇입니까? 8 * 12 상수이며 데이터에 단추 캡션이 포함되어 있습니까? 그렇다면 단순히 폼에 8 * 12 버튼을 넣고 데이터에서 Text 속성을 설정하면됩니다 (텍스트 부분은 동적으로 설정하고 읽기만 설정). –

+0

의견에 감사드립니다. 데이터는 데이터 테이블의 모든 단일 "상자"에 코드에 추가 된 간단한 문자열입니다. 내 knoledge를 고려해 볼 때 상수로 생각하고 있지만 그리드의 크기에 관계없이 적용 가능한 코드가되는 것이 더 좋을 것입니다 ... 저는 데이터 테이블 생성을 피하는 duDE 솔루션을 시도 할 것입니다. 중간에. 어쩌면 나는 그것의 일부를 혼합하여 사용할 수 있기 때문에 테이블 대신 버튼 격자를 만들 수 있습니다 ... – Juano

+0

동적 인 경우 그리드를 사용하는 것이 좋습니다. 또한 버튼 컨트롤을 만드는 이유는 무엇입니까? 대신 그리드에서 CellClick 이벤트를 코딩 할 수 있습니다. 이러한 접근 방식을 사용하면 코드가 훨씬 간단 해집니다 (그렇지 않으면 단추 하나 하나에 클릭 이벤트를 전혀 코딩 할 필요가 없다고 생각해야합니다). –

답변

0

음, 기본적으로는 간단합니다

using(SqlConnection con = new SqlConnection("connection string")) 
{ 
    int nX = 0; 
    int nY = 0; 

    con.Open(); 

    using(SqlCommand cmd = new SqlCommand("SELECT * FROM SomeTable", connection)) 
    { 
     using (SqlDataReader reader = cmd.ExecuteReader()) 
     { 
      if (reader != null) 
      { 
       while (reader.Read()) 
       { 
        //create buttons 
        Button newButton = new Button(); 

        // now set the DB properties 
        newButton.Text = reader.GetString(0): // or whatever 

        // now calculate the X and Y coordinates 
        nX += 25; 
        newButton.Location = new Point(nX,nY); 

        // add new button 
        this.Controls.Add(newButton); 
       } 
      } 
     } // reader closed and disposed up here 

    } // command disposed here 

} //connection closed and disposed here 
+1

고마워요! 이 작업을 수행하고 데이터 테이블 작성으로 작성한 조건과 혼합하려고 시도합니다. 어쩌면 나는 테이블의 원리와 함께 버튼 그리드를 만들 수있다. 필자가 궁극적으로 필요로하는 것이었다. 내가 그것을 할 수 있는지 시험해 볼 것입니다. 고맙습니다! – Juano