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

我用的是VS2008的C#在可视化界面拖拽出来的控件dataGridView1使用DataSource添加数据库可以正常显示,但是我自己手动声明的DataGridView... 我用的是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。
我上网找了很多方法都没用,希望有大牛可以教一下小弟~~~~万分感谢~~~~
展开
 我来答
yeping天下
2011-08-11 · TA获得超过310个赞
知道小有建树答主
回答量:236
采纳率:100%
帮助的人:73.8万
展开全部
1楼的方法没用。
2楼的说法表明,没理解程序,函数内不影响。
3楼在胡说。这是winform程序。

中午吃了饭后,又验证了一下我的想法,果然如此!!!解决了。
必须将自己new的grid添加到form中,否则grid不填充数据。
this.Controls.Add(dataGridView); //加这么一句就OK。
七终多E
2011-08-03 · TA获得超过1.4万个赞
知道大有可为答主
回答量:3756
采纳率:46%
帮助的人:3423万
展开全部
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);
你这个dg对象是在内存里面的 并没有在界面上显示 也就看不到数据了
追问
显示的那一部分代码我没贴上来,因为没必要,主要问题是,数据库的内容存放不到我自己手动新建的dataGridView里面。
追答
你在这行代码出加个断点 da.Fill(ds,"表1");     //AA

然后 监视 ds 看看 里面有没有表 表里面有没有数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gzl09020118
2011-08-03
知道答主
回答量:6
采纳率:0%
帮助的人:3.6万
展开全部
首先,看看DataTable中是否有数据,我最近再用这个控件,试了一下,完全可以。代码如下:
DataTable dt = new DataTable();
dt.Columns.Add("No");
dt.Columns.Add("Name");
for (int i = 0; i < 2; i++)
{
DataRow dr = dt.NewRow();
dr["No"] = "F" + i.ToString();
dr["Name"] = "name" + i.ToString();
dt.Rows.Add(dr);
}

DataGridView dgvData = new DataGridView();
dgvData.AutoGenerateColumns = true;
dgvData.AllowUserToAddRows = true;
dgvData.DataSource = dt;
this.Controls.Add(dgvData);
其中this是一个Form.
另外,一定要有表头才会有数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w8856392
2011-08-03 · 超过19用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:69.5万
展开全部
现在做dataGridView绑定数据根本不用写代码的。首先添加新项data-->ado.net entity data model 进去找到你的数据库找到你要绑定的表再编译下然后再加新项web->domain service class
进去找到你所选的表。再去打开数据源直接拖出来,就得到绑定你要的数据的dataGridView了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
printf59277
2011-08-04 · TA获得超过1080个赞
知道大有可为答主
回答量:1812
采纳率:33%
帮助的人:1281万
展开全部
刚试了下,发现果然存在这个问题,绑定后 它的DataSource 中是有数据的
但是却没有对应到 rows 和column中,
额,看来还有很多问题忽视了、、、
感谢LZ。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式