日期:2014-05-19  浏览次数:20814 次

数据邦定问题(winFrom中用空数据DataSet邦定到dataGridView控件上)
//用空数据DataSet邦定到dataGridView控件上
pirvate   DataSet   ds;
private   void   button1_Click(object   sender,   EventArgs   e)
{
        ds=   new   DataSet();
        dataGridView1.DataSource   =   ds.Tables[ "Company "];
}
//在用个方法返回一个带数据的结构和ds一样的DataSet
private   void   button2_Click(object   sender,   EventArgs   e)
{
        ds   =   GetNewData();
}

private   DataSet     GetNewData()
{
        //这里返回一个有数据的DataSet
}
问题:为什么在单击按钮button2的时候数据填充不上去(ds中有数据)
怎么才能把数据显示出来
现在能把数据显示出来有一个办法:ds.Merge(GetNewData())
不用Merge方法还有其他的办法能将数据显示出来

------解决方案--------------------
you click button2 then ds have data

but you didn 't click button1

so dataGridView1 'data not change
------解决方案--------------------
notice :

ds= new DataSet();
dataGridView1.DataSource = ds.Tables[ "Company "];


change to:

ds= GetNewData();
dataGridView1.DataSource = ds.Tables[ "Company "];
------解决方案--------------------
private void button2_Click(object sender, EventArgs e)
{
ds = GetNewData();
}

private DataSet GetNewData()
{
//这里返回一个有数据的DataSet
}

------>

private void button2_Click(object sender, EventArgs e)
{
GetNewData(ref ds);
}

private void GetNewData(ref ds)
{

//给ds的表赋值.
}


*****************************************************************************
有空 来坐坐.我的Blog

http://blog.csdn.net/hertcloud/

------解决方案--------------------
/// <summary>
/// 绑定DataSet
/// </summary>
/// <param name= "sql "> sql语句 </param>
/// <returns> DataSet </returns>
public static DataSet DBbind(string sql)
{
SqlConnection tmpcon = Connection(address, database, datausername, datapassword);
DataSet ds = new DataSet();
SqlDataAdapter adp = new SqlDataAdapter(sql, tmpcon);
adp.Fill(ds);
tmpcon.Close();
return ds;
}
------解决方案--------------------
button1实际上没有什么作用嘛
------解决方案--------------------
问题:为什么在单击按钮button2的时候数据填充不上去(ds中有数据)
怎么才能把数据显示出来
现在能把数据显示出来有一个办法:ds.Merge(GetNewData())
不用Merge方法还有其他的办法能将数据显示出来
=================================================
给你分析一下你的代码以及问题:

pirvate DataSet ds;
private void button1_Click(object sender, EventArgs e)
{
ds= new DataSet();//示例化一个空的DataSet没有错。
dataGridView1.DataSource = ds.Tables[ "Company "];//这里就是你的不对了,这里有Company表吗?没有看到你添加表的语句,比如:ds.Tables.Add(new DataTable( "Company "));
//
}

//在用个方法返回一个带数据的结构和ds一样的DataSet
private void button2_Click(object sender, EventArgs e)
{
ds = GetNewData();//通过这个方法,只是把ds对象指向新的一个通过GetNewData()返回的DataSet,这样就不是你前面dataGridView1绑定的那个 ds了。
}

private DataSet GetNewData()
{
//这里返回一个有数据的DataSet