2017-04-13 3 views
1

나는 행별로 datagridview를 채워야합니다. 세 번째 행이 현재 선택되어 있으면 데이터가 세 번째 행에 채워질 필요가 있습니다 (내 쿼리는 항상 단일 행을 반환). 모든 행에 대해 동일합니다.datagridview의 행에 대한 데이터베이스 연결 만

일부 제가

가 어떤을 수행하는 방법 .... 사전에 감사가 당신에게 분명히 내 요구 사항을 만들어

   DataTable dt = new DataTable(); 
     dataadapter.Fill(dt); 

     dataGridView1.Rows[index].DataSource = dt; (just a hunch, but not working) 
    (instead of) //dataGridView1.DataSource = dt; 

희망

....

+0

soo 처음에는 빈 행이 표시됩니까? 그리고 그 빈 줄을 클릭하면 그 레코드를 얻을 수 있을까요? –

+0

네, 그게 무슨 말을하고 싶은지 .... – speedyraz

+0

왜 pageload에서 gridview에 데이터를 바인딩하고 배경색을 모든 행 텍스트로 만들고 jquery를 사용하여 마우스를 올리거나 클릭했을 때 그 행을 표시하는 것이 좋을까요? –

답변

1

경우 그냥 올바른와 열을 채워야 값 :

dataGridView1.Rows[rowIndex].Cells["ColumnName"].Value = 
    dt.Rows[0]["ColumnNameInDataTable"].ToString(); 

그리드가 데이터에 이런 식으로 바인딩되지 않습니다. 그러나 당신이 물어 본 것처럼 현재 행의 열을 채울 것입니다.

+0

감사합니다 ... 덕분에 ... 당신은 방금 내 모든 작업을 저장했습니다 ... 당신의 대답은 정확히 내가 며칠 이래로 검색하고있는 것입니다 ..... 다시 감사드립니다 .. – speedyraz

0

같은 이것이 가능하다고 직접 생각하지 마십시오. 빈 개체가있는 목록을 사용하고이 목록을 DataGridView에 바인딩 할 수 있습니다. 그러면 비어있는 행을 사용할 수 있습니다. 그런 다음 목록의 단일 행을 데이터로 채우고 바인딩을 업데이트 할 수 있습니다. 또한

뭔가 같이 ... 당신이 BindingSource에 아니라이 경우 DataTable에 필요하다고 생각 : 조회 후 하나의 행을 반환

private List<YourObject> gridData;   // List 
private BindingSource bindingSource; 

public void Init() 
{ 
    this.gridData = new List<Anything>(); 
    //prefill list, in this case we want to have 100 empty rows in DataGrid 
    for (var i = 0; i < 100; i++) 
    { 
     this.gridData.Add(new YourObject()); 
    } 
    this.bindingSource.DataSource = this.gridData; 
} 

public void UpdateRow(int row) 
{ 
    this.gridData[row] = (from .. in select ...).FirstOrDefault(); // your query 
}