我如何解决这个错误,无法以编程方式将行添加到C#desktop app中的datagridview的rows集合中 [英] How I solve this error, rows cannot be programmatically added to the datagridview's rows collection in C# desktop app

查看:52
本文介绍了我如何解决这个错误,无法以编程方式将行添加到C#desktop app中的datagridview的rows集合中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用源代码在gridview中创建列,我希望在此列中显示来自数据库的值。这是代码,



i create columns in gridview using source code and i want display value from data base in this columns .this is code,

public FRM_AUTO_SPARE_PARTS()
{
    InitializeComponent();

    CreateDataTable();
    ReSizeDGV();
}
void CreateDataTable()
{
    dt.Columns.Add("column1");
    dt.Columns.Add("column2");
    dt.Columns.Add("column3");
    dt.Columns.Add("column4");
    dt.Columns.Add("column5");
    dt.Columns.Add("column6");
    dt.Columns.Add("column7");
    dt.Columns.Add("column8");
    dt.Columns.Add("column9");
    dt.Columns.Add("column10");
    dt.Columns.Add("column11");
    dt.Columns.Add("column12");
    dt.Columns.Add("column13");

    dgv_Add_job_card.DataSource = dt;
}

void ReSizeDGV()
{
    this.dgv_Add_job_card.RowHeadersWidth = 30;
    this.dgv_Add_job_card.Columns[0].Width = 70;
    this.dgv_Add_job_card.Columns[1].Width = 103;
    this.dgv_Add_job_card.Columns[2].Width = 103;
    this.dgv_Add_job_card.Columns[3].Width = 103;
    this.dgv_Add_job_card.Columns[4].Width = 108;
    this.dgv_Add_job_card.Columns[5].Width = 110;
    this.dgv_Add_job_card.Columns[6].Width = 120;
    this.dgv_Add_job_card.Columns[7].Width = 115;
    this.dgv_Add_job_card.Columns[8].Width = 115;
    this.dgv_Add_job_card.Columns[9].Visible = false;
    this.dgv_Add_job_card.Columns[10].Visible = false;
    this.dgv_Add_job_card.Columns[11].Visible = false;
    this.dgv_Add_job_card.Columns[12].Visible = false;
    dgv_Add_job_card.ColumnHeadersDefaultCellStyle.Font = new
                                Font(dgv_Add_job_card.Font, FontStyle.Bold);
}
private void txt_Job_card_KeyDown(object sender, KeyEventArgs e)
{
    if ((e.KeyCode == Keys.Enter))
    {
       string s1 = " SELECT Auto_Part_Details.Items_No ,
                     Auto_Part_Details.Job_Card , Auto_Part_Details.Value_Part
                    , Auto_Parts_Type.Parts_desc , ";
            s1 = s1 + " Repair_Type.Repair_desc ,
                                    Auto_Part_Details.New_Old_Part , ";
            s1 = s1 + " Providers.Provider_desc ,
                                  Hand_Installation.Installation_desc ,
                                  Auto_Part_Details.Notes  ";
            s1 = s1 + " FROM Auto_Part_Details ";
            s1 = s1 + " INNER JOIN Auto_Parts ON Auto_Part_Details.Job_Card = Auto_Parts.Job_Card ";
            s1 = s1 + " LEFT OUTER JOIN Hand_Installation ON Auto_Part_Details.Installation_id = Hand_Installation.Installation_id ";
            s1 = s1 + " LEFT OUTER JOIN Providers ON Auto_Part_Details.Provider_id = Providers.Provider_id ";
            s1 = s1 + " LEFT OUTER JOIN Repair_Type ON Auto_Part_Details.Repair_id = Repair_Type.Repair_id ";
            s1 = s1 + " LEFT OUTER JOIN Auto_Parts_Type ON Auto_Part_Details.Auto_Parts_id = Auto_Parts_Type.Auto_Parts_id ";
            s1 = s1 + " where Car_id = @Car_id and Auto_Part_Details.Job_Card = @Job_Card ";
            using (SqlDataAdapter sDA = new SqlDataAdapter(s1, con))
            {
                sDA.SelectCommand.Parameters.AddWithValue("@Car_id",
                txt_Car_id.Text);
                sDA.SelectCommand.Parameters.AddWithValue("@Job_Card",
                txt_Job_card.Text);
                DataTable dt = new DataTable();
                sDA.Fill(dt);

                foreach (DataRow item in dt.Rows)
                {
                    int n = dgv_Add_job_card.Rows.Add();
                    dgv_Add_job_card.Rows[n].Cells[0].Value =
                                               item["Items_No"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[1].Value =
                                               item["Job_Card"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[2].Value =
                                               item["Value_Part"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[3].Value =
                                               item["Parts_desc"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[4].Value =
                                               item["Repair_desc"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[5].Value =
                                              item["New_Old_Part"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[6].Value =
                                             item["Provider_desc"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[7].Value =
                                         item["Installation_desc"].ToString();
                    dgv_Add_job_card.Rows[n].Cells[8].Value =
                                          item["Notes"].ToString();
                }
    }





我尝试了什么:



i尝试编写此代码,但我有一些错误,谢谢



What I have tried:

i try write this code but i have something error and thanks

推荐答案

void SetDGV()
{
    dgv_Add_job_card.Columns.Add("Column1", "Column1");
    dgv_Add_job_card.Columns.Add("Column2", "Column2");
    dgv_Add_job_card.Columns.Add("Column3", "Column3");
    dgv_Add_job_card.Columns.Add("Column4", "Column4");
    dgv_Add_job_card.Columns.Add("Column5", "Column5");
    dgv_Add_job_card.Columns.Add("Column6", "Column6");
    dgv_Add_job_card.Columns.Add("Column7", "Column7");
    dgv_Add_job_card.Columns.Add("Column8", "Column8");
    dgv_Add_job_card.Columns.Add("Column9", "Column9");
    dgv_Add_job_card.Columns.Add("Column10", "Column10");
    dgv_Add_job_card.Columns.Add("Column11", "Column11");
    dgv_Add_job_card.Columns.Add("Column12", "Column12");
    dgv_Add_job_card.Columns.Add("Column13", "Column13");
    this.dgv_Add_job_card.RowHeadersWidth = 30;
    this.dgv_Add_job_card.Columns[0].Width = 70;
    this.dgv_Add_job_card.Columns[1].Width = 103;
    this.dgv_Add_job_card.Columns[2].Width = 103;
    this.dgv_Add_job_card.Columns[3].Width = 103;
    this.dgv_Add_job_card.Columns[4].Width = 108;
    this.dgv_Add_job_card.Columns[5].Width = 110;
    this.dgv_Add_job_card.Columns[6].Width = 120;
    this.dgv_Add_job_card.Columns[7].Width = 115;
    this.dgv_Add_job_card.Columns[8].Width = 115;
    this.dgv_Add_job_card.Columns[9].Visible = false;
    this.dgv_Add_job_card.Columns[10].Visible = false;
    this.dgv_Add_job_card.Columns[11].Visible = false;
    this.dgv_Add_job_card.Columns[12].Visible = false;
    dgv_Add_job_card.ColumnHeadersDefaultCellStyle.Font = new
                                Font(dgv_Add_job_card.Font, FontStyle.Bold);
}
void DisplayData()
{
    string s1 = "Your Query";
        using (SqlDataAdapter sDA = new SqlDataAdapter(s1, clsVar.con))
        {
            DataTable dt = new DataTable();
            sDA.Fill(dt);

            foreach (DataRow item in dt.Rows)
            {
                int n = dgv_Add_job_card.Rows.Add();
                dgv_Add_job_card.Rows[n].Cells[0].Value =
                                           item[0].ToString();
                dgv_Add_job_card.Rows[n].Cells[1].Value =
                                           item[1].ToString();
                dgv_Add_job_card.Rows[n].Cells[2].Value =
                                           item[2].ToString();
                dgv_Add_job_card.Rows[n].Cells[3].Value =
                                           item[3].ToString();
                dgv_Add_job_card.Rows[n].Cells[4].Value =
                                           item[4].ToString();
                dgv_Add_job_card.Rows[n].Cells[5].Value =
                                          item[5].ToString();
                dgv_Add_job_card.Rows[n].Cells[6].Value =
                                         item[6].ToString();
                dgv_Add_job_card.Rows[n].Cells[7].Value =
                                     item[7].ToString();
                dgv_Add_job_card.Rows[n].Cells[8].Value =
                                      item[8].ToString();
                dgv_Add_job_card.Rows[n].Cells[9].Value =
                                      item[8].ToString();
                dgv_Add_job_card.Rows[n].Cells[9].Value =
                                      item[8].ToString();
                dgv_Add_job_card.Rows[n].Cells[10].Value =
                                      item[10].ToString();
                dgv_Add_job_card.Rows[n].Cells[11].Value =
                                      item[11].ToString();
                dgv_Add_job_card.Rows[n].Cells[12].Value =
                                      item[12].ToString();
        }
    }
}





用项目[columnName]替换项目[1]等等对于所有列



replace item[1] with item[columnName] and so on for all columns


这篇关于我如何解决这个错误,无法以编程方式将行添加到C#desktop app中的datagridview的rows集合中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆