2016-03-29 17 views
0

私はこのソースコードがあります。DataGridViewにデータを追加する列を選択するにはどうすればよいですか?

private void button1_Click(object sender, EventArgs e) 
    { 
     dataGridView1.Visible = true; 
     dataGridView2.Visible = true; 
     SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Olimpiada\SistemSolar\SistemSolar\DBSistem.mdf;Integrated Security=True;User Instance=True"); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("SELECT Denumire FROM Caracteristici", con); 
     SqlCommand cmd1 = new SqlCommand("SELECT Valoare FROM Valori", con); 
     SqlDataReader sdr = cmd.ExecuteReader(); 
     while (sdr.Read()) 
     { 
      string[] RowData = { sdr.GetString(0) }; 
      dataGridView2.Rows.Add(RowData); 
     } 
     sdr.Close(); 
     //SqlCommand cmd1 = new SqlCommand("SELECT Valoare FROM Valori", con); 
     SqlDataReader sdr1 = cmd1.ExecuteReader(); 
     while(sdr1.Read()) 
     { 
      string[] RowData1 = { sdr1.GetString(0) }; 
      dataGridView2.Rows.Add(RowData1); 
     } 
     sdr1.Close(); 
     SqlCommand cmd2 = new SqlCommand("SELECT UM FROM Caracteristici", con); 
     SqlDataReader sdr2 = cmd2.ExecuteReader(); 
     while (sdr2.Read()) 
     { 
      string[] RowData2 = { sdr2.GetString(0) }; 
      dataGridView2.Rows.Add(RowData2); 
     } 
     sdr2.Close(); 

    } 

をそして、私はこのことについて質問があります:私は、他の列に移動し、RowDataを挿入し終えた後、どのように選択することができますか?このコードでは、すべてのデータが1つの列にしかないためです。

string[] RowData = { sdr.GetString(0) }; 
dataGridView2.Rows.Add(RowData); 

これは、常に最初の列にデータを追加します

答えて

0

私はproblem.Iがここで解決策を残す解決:

string[] x = new string[100]; 
     string[] y = new string[100]; 
     string[] z = new string[100]; 
     string[] den = new string[100]; 
     SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DBSistem.mdf;Integrated Security=True;User Instance=True"); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("SELECT Denumire FROM Caracteristici", con); 
     SqlCommand cmd1 = new SqlCommand("SELECT Valoare FROM Valori", con); 
     SqlDataReader sdr = cmd.ExecuteReader(); 
     int i = 0; 
     while (sdr.Read()) 
     { 
       x[i] = sdr.GetString(0); 
       i++; 
     } 
     sdr.Close(); 
     SqlDataReader sdr1 = cmd1.ExecuteReader(); 
     i = 0; 
     while(sdr1.Read()) 
     { 
      y[i] = sdr1.GetString(0); 
      i++; 
     } 
     sdr1.Close(); 
     i = 0; 
     SqlCommand cmd2 = new SqlCommand("SELECT UM From Caracteristici", con); 
     SqlDataReader sdr2 = cmd2.ExecuteReader(); 
     while (sdr2.Read()) 
     { 
      z[i] = sdr2.GetString(0); 
      i++; 
     } 
     sdr2.Close(); 
     for (i = 0; i <= 10; i++) 
     { 
      string[] RowData = { x[i], y[i], z[i] }; 
      dataGridView2.Rows.Add(RowData); 
     } 
1

問題は、あなたが行にデータを追加するとき、あなたはこのようにそれを追加しているということです。他の列にデータを追加するには、データを追加する必要があります。

string[] RowData = { "Column1", sdr.GetString(0), "Column3" }; 

3つの列がある場合は、2番目の列にデータを追加します。

https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rows(v=vs.110).aspx

+0

こんにちは!ありがとう、あなたの返信ありがとう...私の質問はもう一つ(私のソースコードをチェックしていた)..私は最初の列(RowData)を記入した後、私はデータベース内のaotehrテーブルから挿入する必要がある次のデータの別のリーダーを開いた。そして私はRowData1を使用することはできません= {RowData、sdr1.Getstring(0)}限り、私はローカルvaribaleとしてRowDataを宣言.. –

0

は、これはアイデアです、私はあなたがそれを得る願っています! この例では満たされたすべての列と行を追加します:

foreach (var item in Logs) 
{ 
    string[] row = new string[] { item.Id, item.Name, item.Description }; 

    dataGridView.Rows.Add(row); 
    dataGridView.ClearSelection(); 
    dataGridView.Rows[dataGridView.Rows.Count - 1].Selected = true; 
    dataGridView.FirstDisplayedScrollingRowIndex = dataGridView.Rows.Count - 1; 
} 

string[] row = new string[] { item.Id, item.Name, item.Description };の順序があなたのDataGridViewの列の順序と同じでなければなりません。

私のコードのログはList<Log>ですが、その他のコレクションタイプでも動作します。

ログにさまざまなオブジェクトが埋め込まれている場合、この例では同じ量の行が追加されます。