小弟遇到一个问题,在使用Datagridview控件的时候,由于与数据库连接部分的代码全部封装在一个类中,主页代码无法取得sqldataAdapter对象,不好用不用sqldataAdapter的UPdata()跟新,我要如何实现数据的跟新啊?小弟第一次提问。
下下是我的用法:
主页掉用:
DataSet ds = business.Getsspc_Tck_T2List();
bindingSource1.DataSource = ds.Tables[0];
dgvTck_T2.DataSource = bindingSource1;
实现绑定数据。
business.Getsspc_Tck_T2List()里面内容为:
try
{
string err;
string sql = "select ,ph,mesh_residue,paperkind_c,weight_c from spc_tck_t2 where sampdate=to_date( '" + sampdate + " ', 'yyyy-mm-dd hh24:mi:ss ') "; logger.Debug(sql);
DataSet ds = helper.ShowDataTbAd(sql, out err);
logger.Info("从spc_tck_t2表中查询记录,日期为: " + sampdate);
return ds;
}
catch(Exception ex)
{ MessageBox.Show(ex.ToString());
logger.Error("从spc_tck_t2表中查询记录,原因为: " + ex.ToString());
return null;
}
最后通过helper.ShowDataTbAd(sql, out err);连接数据库:
public DataSet ShowData(string str, out string err)
{
Open_db();
datadap = new OracleDataAdapter(str, oracleConnection1);
OracleDataSetDll.OracleDataSet ods = new OracleDataSetDll.OracleDataSet(); OracleCommandBuilder TckBuilder = new OracleCommandBuilder(datadap);
datadap.MissingSchemaAction = MissingSchemaAction.AddWithKey;//把表的主键天加到 dataset当中去
try
{
datadap.Fill(ods, "Table");
err = "OK";
return (DataSet)ods;
}
catch (Exception e)
{
err = e.Message;
throw e;
//return null;
}
finally
{
Close_db();
}我该怎么做啊,主界面没有定义dataAdapter,怎样更新Datagridview里面的数据????
下下是我的用法:
主页掉用:
DataSet ds = business.Getsspc_Tck_T2List();
bindingSource1.DataSource = ds.Tables[0];
dgvTck_T2.DataSource = bindingSource1;
实现绑定数据。
business.Getsspc_Tck_T2List()里面内容为:
try
{
string err;
string sql = "select ,ph,mesh_residue,paperkind_c,weight_c from spc_tck_t2 where sampdate=to_date( '" + sampdate + " ', 'yyyy-mm-dd hh24:mi:ss ') "; logger.Debug(sql);
DataSet ds = helper.ShowDataTbAd(sql, out err);
logger.Info("从spc_tck_t2表中查询记录,日期为: " + sampdate);
return ds;
}
catch(Exception ex)
{ MessageBox.Show(ex.ToString());
logger.Error("从spc_tck_t2表中查询记录,原因为: " + ex.ToString());
return null;
}
最后通过helper.ShowDataTbAd(sql, out err);连接数据库:
public DataSet ShowData(string str, out string err)
{
Open_db();
datadap = new OracleDataAdapter(str, oracleConnection1);
OracleDataSetDll.OracleDataSet ods = new OracleDataSetDll.OracleDataSet(); OracleCommandBuilder TckBuilder = new OracleCommandBuilder(datadap);
datadap.MissingSchemaAction = MissingSchemaAction.AddWithKey;//把表的主键天加到 dataset当中去
try
{
datadap.Fill(ods, "Table");
err = "OK";
return (DataSet)ods;
}
catch (Exception e)
{
err = e.Message;
throw e;
//return null;
}
finally
{
Close_db();
}我该怎么做啊,主界面没有定义dataAdapter,怎样更新Datagridview里面的数据????
解决方案 »
- webBrowser
- 一个评分软件,请给建议,谢谢
- zedGraphControl 图形切换?
- TcpClient或者Socket通讯,本机调试正常,发布到服务器上异常!1000分
- 问一个正则表达式,谢谢了
- ASP。NET 问题请教?? 创建新项目时报错。。。
- 接着散分,都是很简单的问题,怎样格式化时间显示到分例如2005/5/10 10:30
- 【WPF新手求助】 如何在一个框中嵌套其他框
- c#银行设计里面,更新不了数据库里面的内容,请高手支招帮忙解决一下
- 有关泛型Dictionray作为参数传递
- 为啥在textbox1输入错误的路径和文件名,咋没捕捉到错误呢?比如输入12333.txt,按button1,直接就跑到finally去了呢?
- 求正则替换sql语句为select count(*) from
但是datadap 只能使用一次。否则被覆盖了就不是你要跟新的数据了。
换言之 ShowData()方法在跟新数据之前只能在Getsspc_Tck_T2List()方法里用一次、
2、修改business.Getsspc_Tck_T2List()方法为business.Getsspc_Tck_T2List(SqlDataAdapter da)
3、然后在Getsspc_Tck_T2List()方法里面去实例化da,并通过da去取数据。(尽量不要使用全局变量)
//由于你的SqlDataAdapter对象是在方法ShowDataTbAd中实例化的,所以你还应该修改该方法的签名,加上参数da