连接、查询语句都正常的,主要代码如下:
private void dataGridView1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("项目编号", typeof(string));
dt.Columns.Add("物品编号", typeof(string));
dt.Columns.Add("物品名称", typeof(string));
dt.Columns.Add("物品类型", typeof(string));
dt.Columns.Add("单价", typeof(string));
dt.Columns.Add("数量", typeof(string));
DataRow dr = dt.NewRow(); reader01 = cmdselect01.ExecuteReader();
while (reader01.Read())
{
dr[0] = reader01[0].ToString();
dr[1] = reader01[1].ToString();
dr[2] = reader01[2].ToString();
dr[3] = reader01[3].ToString();
dr[4] = reader01[4].ToString();
dr[5] = reader01[5].ToString();
dt.Rows.Add(dr);
}
reader01.Close();
dataGridView2.DataSource = dt;
}这是个datagridview1的click事件代码,但是在运行时,点到包含多个数据的项目时,会弹出System.ArgumentException:该行已经属于此表这个错误,我表示很不能理解,还请大虾们指点,谢谢!
private void dataGridView1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("项目编号", typeof(string));
dt.Columns.Add("物品编号", typeof(string));
dt.Columns.Add("物品名称", typeof(string));
dt.Columns.Add("物品类型", typeof(string));
dt.Columns.Add("单价", typeof(string));
dt.Columns.Add("数量", typeof(string));
DataRow dr = dt.NewRow(); reader01 = cmdselect01.ExecuteReader();
while (reader01.Read())
{
dr[0] = reader01[0].ToString();
dr[1] = reader01[1].ToString();
dr[2] = reader01[2].ToString();
dr[3] = reader01[3].ToString();
dr[4] = reader01[4].ToString();
dr[5] = reader01[5].ToString();
dt.Rows.Add(dr);
}
reader01.Close();
dataGridView2.DataSource = dt;
}这是个datagridview1的click事件代码,但是在运行时,点到包含多个数据的项目时,会弹出System.ArgumentException:该行已经属于此表这个错误,我表示很不能理解,还请大虾们指点,谢谢!
放到while循环里面
while (reader01.Read())
{
DataRow dr = dt.NewRow();
}
{
DataTable dt = new DataTable();
dt.Columns.Add("项目编号", typeof(string));
dt.Columns.Add("物品编号", typeof(string));
dt.Columns.Add("物品名称", typeof(string));
dt.Columns.Add("物品类型", typeof(string));
dt.Columns.Add("单价", typeof(string));
dt.Columns.Add("数量", typeof(string));
DataRow dr; reader01 = cmdselect01.ExecuteReader();
while (reader01.Read())
{
dr = dt.NewRow(); //每遍历一行数据的同时产生一个新行,用来保存数据
dr[0] = reader01[0].ToString();
dr[1] = reader01[1].ToString();
dr[2] = reader01[2].ToString();
dr[3] = reader01[3].ToString();
dr[4] = reader01[4].ToString();
dr[5] = reader01[5].ToString();
dt.Rows.Add(dr);
}
reader01.Close();
dataGridView2.DataSource = dt;
}