2017-04-13 1 views
1

私は、行ごとにdatagridviewを満たす必要があります。 3行目が現在選択されている場合、3行目にデータを入力する必要があります(クエリは常に1行を返します)。すべての行で同じです。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

そもそも最初は空白の行がありますか?そしてその空白行をクリックすると、そのレコードが得られますか? –

+0

はい、私が言っていることは.... – speedyraz

+0

次に、pageloadのgridviewにデータをバインドして、背景の色にすべての行のテキストを作成し、jqueryを使用して、その行を表示またはクリックしたときに表示します。 –

答えて

1

あなたのクエリは、単一の行を返す場合、あなたは単に正しいと列を入力する必要が値:

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

グリッドはこのようにデータにバインドされません。しかし、あなたが尋ねたように、現在の行の列を埋めるでしょう。

+0

おかげさま...ありがとうございました。あなたは私の仕事全体を保存しました... あなたの答えは、私が何日も探しているものです。 – speedyraz

0

私はこれが直接可能だとは思わない ある量の空のオブジェクトを持つリストを使用し、このリストをDataGridViewにバインドすることができます。次に空の行を扱うことになります。リストの1行にデータを入力してバインディングを更新することができます。 私はまた、あなたがの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 
} 
関連する問題