private void updata()
{
OleDbCommandBuilder ob = new OleDbCommandBuilder(); //第一行
da.UpdateCommand = ob.GetUpdateCommand(); //第二行
da.InsertCommand = ob.GetInsertCommand(); //第三行
da.DeleteCommand = ob.GetDeleteCommand(); //第四行 da.Update(ds,"通讯录"); //第五行
} private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
updata(); //第六行
}
da 是OleDbDataAdapter,ds是DataSet,
我在dataset中进行删除、更改、添加行后,用updata更新数据源,可每次调用private void updata()的时候,总会在第二行抛出一个异常 “DataAdapter.SelectCommand 属性需要初始化。”
如果我把第二行给注释了,同样的异常会出现在第三行,这是怎么回事啊..!?
DataAdapter.SelectCommand 属性我在填充dataset的时候就已经定义过了啊..希望哪位高手帮下忙啊~~~ 先谢谢大家了~!!!!!!!!!!!!
{
OleDbCommandBuilder ob = new OleDbCommandBuilder(); //第一行
da.UpdateCommand = ob.GetUpdateCommand(); //第二行
da.InsertCommand = ob.GetInsertCommand(); //第三行
da.DeleteCommand = ob.GetDeleteCommand(); //第四行 da.Update(ds,"通讯录"); //第五行
} private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
updata(); //第六行
}
da 是OleDbDataAdapter,ds是DataSet,
我在dataset中进行删除、更改、添加行后,用updata更新数据源,可每次调用private void updata()的时候,总会在第二行抛出一个异常 “DataAdapter.SelectCommand 属性需要初始化。”
如果我把第二行给注释了,同样的异常会出现在第三行,这是怎么回事啊..!?
DataAdapter.SelectCommand 属性我在填充dataset的时候就已经定义过了啊..希望哪位高手帮下忙啊~~~ 先谢谢大家了~!!!!!!!!!!!!
要先设置一下SelectCommand的~
OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter();
MyDataAdapter.SelectCommand = comm ;
OleDbDataAdapter da,还有dataset ds 这些都是全局变量..
有值跟有正确的值是两码事。 你连 Select 什么东西都不告诉 CommandBuilder,它怎么帮你创建 Update, Insert, Delete 啊?
OleDbCommandBuilder ob = new OleDbCommandBuilder(da);
自动给da生成insertCommand、updateCommand。。
可以去掉2、3、4行
以上前提是selectCommand的来源是同一个表!
即它的Sql语句如:select * from tb(单个表)。。