dataGridView1数据填充问题,谢谢解答
private void frmCustomers_Load(object sender, EventArgs e)
{
DataTable dt = OLEDBClass.RunSqlGetDataTable("select * from data_customers where pkid=-1 order by pkid");
foreach (DataGridViewColumn col in this.dataGridView1.Columns) //dataGridView1的NAME和数据库NAME是一致的
{
string colname = col.Name.ToString();
dataGridView1.Columns[colname].DataPropertyName = colname;
}
dataGridView1.AutoGenerateColumns = false;
//设置初始值
dt.Columns["discount"].DefaultValue ="0.7";
dt.Columns["purchasetimes"].DefaultValue ="0";
dt.Columns["purchaseamount"].DefaultValue = "0";
//END
bscustomers.DataSource = dt;
dataGridView1.DataSource = bscustomers;
}
private void buttonSearch_Click(object sender, EventArgs e) //查找
{
string Sqlstr"select * from data_customers order by pkid""
OleDbDataAdapter oleda = new OleDbDataAdapter(Sqlstr, GetConn());
((DataTable)bscustomers.DataSource).Clear();
oleda.Fill((DataTable)bscustomers.DataSource);
}
我一般是通过上述代码,把查找内容直接FILL进dataGridView1所绑定的TABLE的.
另外一种方法是直接查询后把DATATABLE直接赋予dataGridView1.DataSource,但是这样做,
之前定义的DefaultValue值必须重新赋值,但是如果使用FILL的话,
就不用,我估计FILL是直接填充数据,不更改DATATABLE的初始化。现在问题是,我是使用WEBSERVICE返回一个DATATABLE,
这样的话,我就不能直接使用FILL,现在问题是不用FILL的话,如何把返回的DATATABLE填充到已经绑定的dataGridView1上面
当然我可以这样赋值:dataGridView1.DataSource=dt;但是这样的话,DefaultValue就必须重新赋值一次,有没有其他办法,
帮忙解答,谢谢
------解决方案--------------------
或者WEBSERVICE返回dataset后,你自己写个fill方法,把WEBSERVICE返回的datatable中的row复制到原来的datatable上,