繁体   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