我如何解决这个错误,无法以编程方式将行添加到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
本文介绍了我如何解决这个错误,无法以编程方式将行添加到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屋!
查看全文