• 全部
...

关于 C# dataGridView.DataSource 添加之后显示不了的问题~~~~求帮忙~

cypjimms 2011-08-03 07:12:31
我用的是VS2008的C#
在可视化界面拖拽出来的控件dataGridView1使用DataSource添加数据库可以正常显示,但是我自己手动声明的
DataGridView dataGridView = new DataGridView();
在dataGridView.DataSource 给定之后,显示不了数据。
代码如下:

private void button1_Click(object sender, EventArgs e)
{
string connstr;
string olestr;
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\C#编程\\测试数据库.mdb;";
olestr = "SELECT * FROM [表1]";
OleDbConnection conn = new OleDbConnection(connstr);
OleDbDataAdapter da = new OleDbDataAdapter(olestr, conn);
DataSet ds = new DataSet();
conn.Open();
da.Fill(ds,"表1");
//前一部分连接数据库的表格

DataGridView dataGridView = new DataGridView();
dataGridView.AutoGenerateColumns = true;
dataGridView.AllowUserToAddRows = true;

dataGridView.DataSource = ds.Tables[0]; //AA


string k = dataGridView.Rows.Count.ToString(); //BB

MessageBox.Show(k);
}
这里,数据库有一个2x2的表格 ,这里MessageBox出现数字为0,
但是我在AA处换成 dataGridView1.DataSource = ds.Table[0];
BB处换成string k = dataGridView1.Rows.Count.ToString();
MessageBox显示的数值为2。
并且可以正常显示。
我上网找了很多方法都没用,希望有大牛可以教一下小弟~~~~万分感谢~~~~
...全文
给本帖投票
911 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
cypjimms 2011-08-07
  • 打赏
  • 举报
回复
虽然比较笨,不过还是看到了,谢谢了。
cypjimms 2011-08-04
  • 打赏
  • 举报
回复
其实,我原本的意思是不想让他显示的,只不过是想让dataGridView储存数据库的表格,他显示不出来这个我知道的,问题是这个dataGirdView储存都储存不了,检测内部行数为0。如何让他储存得了东西呢……
大力的哥 2011-08-04
  • 打赏
  • 举报
回复
5,6楼已经说得很清楚了
代码声明的dataGridView已经有绑定的数据了,但是没有机会在窗体上显示
this.Controls.Add(dataGridView);
sdl2005lyx 2011-08-04
  • 打赏
  • 举报
回复
5,6楼已经说得很清楚了,DataGridView是控件,而不是完全的数据集合类,是用来显示数据的,必须放在父窗体才能实现效果,把你的代码稍稍修改:

dataGridView.DataSource = ds.Tables[0]; //AA

dataGridView=this;
string k = dataGridView.Rows.Count.ToString(); //BB
zhou_xuexi 2011-08-04
  • 打赏
  • 举报
回复
自己实例化的gridview要添加到窗体中的,拖的自己会添加进去
裸奔的蜗牛 2011-08-04
  • 打赏
  • 举报
回复
this.Controls.Add(dataGridView);初始化后没有把该控件加入你的窗体中。。。
sdl2005lyx 2011-08-04
  • 打赏
  • 举报
回复
如果你非要知道,只有用反射看看DataGridView的实现源码了,微软设计的目的就是这样的。。。
cypjimms 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sdl2005lyx 的回复:]

楼主,问题就处在你的想法:DataTable是现成的数据表,你为什么不用,反而用界面控件来临时存储数据,是完全用错方向了。。。。
[/Quote]

用DataTable确实已经实现了我需要的功能,但是我想知道的是为什么DataGridView为什么储存不了东西……
fsh1985 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 andywangguanxi 的回复:]
楼主,你已经声明两个dataGridView了。拖过去的一个已经初始化了,叫dataGridView1,另外一个叫dataGridView是你用代码声明的,但是你没给他添加到Form里面。
相当与你把数据绑定到dataGridView了,但你却把他藏起来了,在外面放一个dataGridView1(它还没绑定呢),然后让dataGridView1来显示。
不知明不明白~~
[/Quote]

支持,可能是楼绑定错了
javaoraspx 2011-08-04
  • 打赏
  • 举报
回复
+ +
sdl2005lyx 2011-08-04
  • 打赏
  • 举报
回复
楼主,问题就处在你的想法:DataTable是现成的数据表,你为什么不用,反而用界面控件来临时存储数据,是完全用错方向了。。。。
csnd唐长老 2011-08-04
  • 打赏
  • 举报
回复
private DataSet ds;
用它存储不好吗?
康少_小贱 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 andywangguanxi 的回复:]
楼主,你已经声明两个dataGridView了。拖过去的一个已经初始化了,叫dataGridView1,另外一个叫dataGridView是你用代码声明的,但是你没给他添加到Form里面。
相当与你把数据绑定到dataGridView了,但你却把他藏起来了,在外面放一个dataGridView1(它还没绑定呢),然后让dataGridView1来显示。
不知明不明白~~
[/Quote]

你重复搞了两次,可能被覆盖了,你随便去掉一个试试
EdsionWang 2011-08-03
  • 打赏
  • 举报
回复
楼主,你已经声明两个dataGridView了。拖过去的一个已经初始化了,叫dataGridView1,另外一个叫dataGridView是你用代码声明的,但是你没给他添加到Form里面。
相当与你把数据绑定到dataGridView了,但你却把他藏起来了,在外面放一个dataGridView1(它还没绑定呢),然后让dataGridView1来显示。
不知明不明白~~
cypjimms 2011-08-03
  • 打赏
  • 举报
回复
不是,是我初始化表格的时候,数据绑定不进去,MessageBox是用来检测dataGridView里面有没有存储到东西的,我这个dataGridView是手动初始化的,但是我的dataGridView1是我拖控件创建的,问题是,我拖控件出来的可以储存数据,我自己初始化的却储存不了,很头大啊~~~~~
zhlin118 2011-08-03
  • 打赏
  • 举报
回复
你的意思是开始初始化表格绑定数据没有显示,后来在btn里面设置数据却有显示了?
如果是这样,可能就是初始化绑定的时候,DataTable里面查出来的数据为空。要么就是绑定哪里出问题了~

111,088

社区成员

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

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

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

手机看
关注公众号

关注公众号

客服 返回
顶部