MahmoudOmar Ответов: 1

Как я решаю эту ошибку, строки не могут быть программно добавлены в коллекцию строк datagridview в настольном приложении C#


я создаю столбцы в gridview с помощью исходного кода и хочу, чтобы в этих столбцах отображалось значение из базы данных.,

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


Что я уже пробовал:

я пытаюсь написать этот код, но у меня есть что-то ошибка и спасибо

1 Ответов

Рейтинг:
1

nilesh sawardekar

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


замените item[1] на item[columnName] и так далее для всех столбцов