加如下语句
OleDbDataAdapter.Update(dsauthors1);dsauthors1是dataGrid控件绑定的数据集
OleDbDataAdapter.Update(dsauthors1);dsauthors1是dataGrid控件绑定的数据集
解决方案 »
- winform知道文件路径(.pdf的文件),怎样打开它?
- 动态页面 静态页面哪个更容易被搜索引擎收录?其原理与原因何在??
- 数据库连接
- select NVL(max(ROOMCODE),0) + 1 from ressystem.rs_room
- 怎么在已有的XML文件中追加信息
- 求在.net环境下开发基于WEB的指纹识别的组件...
- 用了几年的.net,新进的公司要我再学delphi6,怎么办!
- WCF 这可能是由于服务终结点绑定未使用 HTTP 协议造成的
- 问一个C问题
- 推荐本计算机英汉辞典
- 请教微软专家:还是C#调用COM+有关参数传递的问题(焦急等待中)!
- dateGrid的BorderStyle
就是你说的OleDbDataAdapter.Update(dsauthors1);呀,不知道为什么看到界面上的dataGrid已修改,但实际看数据库没有修改。
myCommand.Update(ds.GetChanges(DataRowState.Modified))别忘给分!!
加入你给的语句后,有一报错:"值不能为空,参数名:dataSet"
dataGrid1.DataSource=ds.Tables["test"].DefaultView;
[email protected]
是的,你可以使用Update()来对数据库进行更新。如果你使用的是SQL Server,你还可以用Update()一次性的更新数据库(包括新增、插入、修改、删除保存到数据库中),如果不是Sql server,就要看是否数据库支持这种操作。对于SQL Server,你最好使用Sql前最。DataAdapter.Update,下面是参考代码片断:
SqlConnection myConn=new SqlConnection(" Provider = sqloledb; Data Source = 127.0.0.1;uid=sa;pwd=;database=pubs") ;
SqlCommand selCommand=new Command("select * from authors",myConn);
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=selCommand;
DataSet ds=new DataSet();
da.Fill(ds,"test");
SqlCommandBuilder dc=new SqlCommandBuilder(da);private void cmdSave_Click(object sender, System.EventArgs e)
{
if(ds.Tables["test"].HasChanges()){
DataSet changeDs=ds.Tables["test"].GetChanges();
da.Update(changeDs,"test");
ds.Tables["test"].AcceptChanges();
}
}其中ds.Tables["test"]加点以后并没有HasChanges和GetChanges,也就是说dataset中没有这两个方法,不知为何故?
private void cmdSave_Click(object sender, System.EventArgs e)
{//保存修改
try
{
/*ds.Tables["test"].AcceptChanges();
myCommand.TableMappings.Clear();
myCommand.TableMappings.Add("authors","test");
myCommand.Update(ds,"test");
*/
System.Data.OleDb.OleDbCommandBuilder ole_cb=new System.Data.OleDb.OleDbCommandBuilder(myCommand);
myCommand.UpdateCommand = ole_cb.GetUpdateCommand();
myCommand.Update(ds.GetChanges(DataRowState.Modified));
ds.AcceptChanges();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
这是您代码中的关键部分
this.oleDbInsertCommand1.CommandText = "INSERT INTO 课程表(星期二, 星期六, 星期日, 星期三, 星期四, 星期五, 星期一) VALUES (?, ?, ?, ?, ?, ?, ?)";
this.oleDbUpdateCommand1.CommandText = @"UPDATE 课程表 SET 星期二 = ?, 星期六 = ?, 星期日 = ?, 星期三 = ?, 星期四 = ?, 星期五 = ?, 星期一 = ? WHERE (节次 = ?) AND (星期一 = ? OR ? IS NULL AND 星期一 IS NULL) AND (星期三 = ? OR ? IS NULL AND 星期三 IS NULL) AND (星期二 = ? OR ? IS NULL AND 星期二 IS NULL) AND (星期五 = ? OR ? IS NULL AND 星期五 IS NULL) AND (星期六 = ? OR ? IS NULL AND 星期六 IS NULL) AND (星期四 = ? OR ? IS NULL AND 星期四 IS NULL) AND (星期日 = ? OR ? IS NULL AND 星期日 IS NULL)";
this.oleDbDeleteCommand1.CommandText = @"DELETE FROM 课程表 WHERE (节次 = ?) AND (星期一 = ? OR ? IS NULL AND 星期一 IS NULL) AND (星期三 = ? OR ? IS NULL AND 星期三 IS NULL) AND (星期二 = ? OR ? IS NULL AND 星期二 IS NULL) AND (星期五 = ? OR ? IS NULL AND 星期五 IS NULL) AND (星期六 = ? OR ? IS NULL AND 星期六 IS NULL) AND (星期四 = ? OR ? IS NULL AND 星期四 IS NULL) AND (星期日 = ? OR ? IS NULL AND 星期日 IS NULL)";可不可以不用sql语句?