簡體   English   中英

如何選擇要向DataGridView中添加數據的列?

[英]How do i choose the column that i want to add data into a 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后,如何選擇移至另一列? 因為使用此代碼,所有數據僅在單個列上。

問題是,當您將數據添加到行時,您將像這樣添加數據:

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

這總是將數據添加到第一列。 要將數據添加到其他列,您需要將數據添加到所需的列索引中,例如

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

如果有3列,則將數據添加到第二列。

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

這是一個主意,希望您能理解! 本示例將添加一行並填充所有列:

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 };的順序string[] row = new string[] { item.Id, item.Name, item.Description }; 應該等於您的datagridView列順序。

登錄我的代碼是List<Log> ,但應該與任何其他集合類型一起使用。

如果日志中充滿了各種對象,則此示例將添加相同數量的行。

我解決了問題,我將解決方案留在這里:

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);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM