2个datagridview的数据传递,不知道问题出在哪里,求助!

natici 2009-05-02 07:28:47
效果是: 双击datagridview1里的一行时会在datagridview2里显示。
思路应该是正确的啊?怎么我双击之后,datafridview2里依然是空白?问题出在哪里?


private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{

string Afile = "provider=Microsoft.Jet.OleDb.4.0;Data Source=canyin.mdb";
OleDbConnection AconnStr = new OleDbConnection(Afile);
DataTable dt = new DataTable();
DataTable dt1 = this.dataGridView2.DataSource as DataTable;
DataColumn dc = new DataColumn("桌号", typeof(string));
dt.Columns.Add(dc);
DataColumn dc1 = new DataColumn("菜名", typeof(string));
dt.Columns.Add(dc1);
DataColumn dc2 = new DataColumn("消费", typeof(string));
dt.Columns.Add(dc2);
DataRow dr = dt.NewRow();
dr["桌号"] = this.dataGridView1[0, e.RowIndex].Value.ToString();
dr["菜名"] = this.dataGridView1[1, e.RowIndex].Value.ToString();
dr["消费"] = this.dataGridView1[2, e.RowIndex].Value.ToString();
dt.Rows.Add(dr);
this.dataGridView2.DataSource = dt;
}
...全文
168 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2009-05-03
  • 打赏
  • 举报
回复
补充一下,如果是WinForm程序,没有DataBind()方法,不过有个Refresh(),在数据源指向未改变而数据源内数据有变化的情况下,DataGridView是不会自动更新数据的,需要调用Refresh()方法。
qldsrx 2009-05-03
  • 打赏
  • 举报
回复
显然你是忘了执行数据绑定了,只要在最后代码最后添加this.dataGridView2.DataBind();即可
todayst 2009-05-03
  • 打赏
  • 举报
回复
如果你用的是.net2005
可以用下BindingSource
解决这类问题,BindingSource是很好的
natici 2009-05-02
  • 打赏
  • 举报
回复
会的兄弟帮忙看下呀。。。
natici 2009-05-02
  • 打赏
  • 举报
回复
会不会跟控件的设置有关系?
natici 2009-05-02
  • 打赏
  • 举报
回复
还是不行。。无论datagridview1里双击哪里,在datagridview2里都无任何显示
蔡袅 2009-05-02
  • 打赏
  • 举报
回复
private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{

string Afile = "provider=Microsoft.Jet.OleDb.4.0;Data Source=canyin.mdb";
OleDbConnection AconnStr = new OleDbConnection(Afile);
DataTable dt1 = this.dataGridView2.DataSource as DataTable;
DataColumn dc = new DataColumn("桌号", typeof(string));
dt1.Columns.Add(dc);
DataColumn dc1 = new DataColumn("菜名", typeof(string));
dt1.Columns.Add(dc1);
DataColumn dc2 = new DataColumn("消费", typeof(string));
dt1.Columns.Add(dc2);
DataRow dr = dt.NewRow();
dr["桌号"] = this.dataGridView1[0, e.RowIndex].Value.ToString();
dr["菜名"] = this.dataGridView1[1, e.RowIndex].Value.ToString();
dr["消费"] = this.dataGridView1[2, e.RowIndex].Value.ToString();
dt1.Rows.Add(dr);
this.dataGridView2.DataSource = dt1;
}
这样试试~
natici 2009-05-02
  • 打赏
  • 举报
回复
在load窗口时就赋值了
private void 加菜减菜_Load(object sender, EventArgs e)
{
this.caishiinfoTableAdapter.Fill(this.canyinDataSet.caishiinfo);
textBox1.Text = share.temp;
string Afile = "provider=Microsoft.Jet.OleDb.4.0;Data Source=canyin.mdb";
OleDbConnection AconnStr = new OleDbConnection(Afile);
OleDbDataAdapter aload = new OleDbDataAdapter("select 菜名,菜价 from caishiinfo", AconnStr);
DataTable dt = new DataTable();
aload.Fill(dt);
this.dataGridView1.DataSource = dt;
}
llsen 2009-05-02
  • 打赏
  • 举报
回复
调试看看,dt里面有值吗
natici 2009-05-02
  • 打赏
  • 举报
回复
补充一点:datagridview1已绑定数据库文件里的一个表,datagridview2只有列名,没有绑定任何表。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧