如何使用Update语句实现数据更新?最好能有类似回滚方式保护的。

tonyathome 2003-11-11 04:50:07
不知是否能直接采用运行Update语句的方法来实现数据更新,以下语句不能实现,也没有报错信息:
CommandText="Update table Set field1='A' Where field2='B'"
Dim myCommand as New Sqlcommand(CommandText,myconnection)
Dim myAdapter as new Sqldataadapter
Dim myDataSet as new dataset()
myAdapter.updatecommand=mycommand
myConnection.open()
myConnection.close
...全文
153 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhan2000 2003-11-17
  • 打赏
  • 举报
回复
myAdapter.updatecommand.Transaction=myTrans
lbywyj 2003-11-17
  • 打赏
  • 举报
回复
up
nova2001 2003-11-17
  • 打赏
  • 举报
回复
yeiliuxing(流星) 的话使我大彻大悟,感谢!
李洪喜 2003-11-17
  • 打赏
  • 举报
回复
关注!!
tonyathome 2003-11-17
  • 打赏
  • 举报
回复
谢谢各位,结帖!
Rossetti 2003-11-16
  • 打赏
  • 举报
回复
CommandText="Update table Set field1='A' Where field2='B'"
Dim myCommand as New Sqlcommand(CommandText,myconnection)
Dim myAdapter as new Sqldataadapter
Dim myDataSet as new dataset()
myAdapter.updatecommand=mycommand
myConnection.open()
myConnection.close

to
myConnection.open()
CommandText="Update table Set field1='A' Where field2='B'"
Dim myCommand as New Sqlcommand(CommandText,myconnection)
Dim myAdapter as new Sqldataadapter
Dim myDataSet as new dataset()
myAdapter.updatecommand=mycommand
myConnection.close()
yeiliuxing 2003-11-14
  • 打赏
  • 举报
回复
实现 arding123(阿拉丁) 已经讲得很清楚了 只要把他的insert语句改成你想要得update语句就可以了
你得不能实现是因为:
1.myCommand 根本就没有执行过
2.myAdapter 是可以执行update的 但是他有4个command select、update、delete、insert
其中只有select是必需的 但你却没写
3.使用myAdapter更新数据库要调用update方法 它需要一个数据源dataSet 或者是dataTable、dataView之类的 并且要数据源中有改动才可以调用相应的command这个调用时adapter根据数据源中记录的改动自动完成的
4.你的myDataSet根本就没有数据怎么来说改动呢 使用myAdapter.fill可以填充dataset
然后再dataset中进行更改 在调用myAdapter.update就可以实现更新了
如果只是 一条更新的话 没有必要使用dataAdapter也没有必要使用事务吧
阿拉丁 2003-11-11
  • 打赏
  • 举报
回复
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");
可以改成:
myTrans = myConnection.BeginTransaction();
阿拉丁 2003-11-11
  • 打赏
  • 举报
回复
public void RunSqlTransaction(string myConnString)
{
SqlConnection myConnection = new SqlConnection(myConnString);
myConnection.Open();

SqlCommand myCommand = new SqlCommand();
SqlTransaction myTrans;

// Start a local transaction
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");
// Must assign both transaction object and connection
// to Command object for a pending local transaction
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;

try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback("SampleTransaction");
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}
}
顾君彦 2003-11-11
  • 打赏
  • 举报
回复
使用SqlConnection实例的
BeginTransaction 来获得数据库事务
在最终执行完数据库更新操作后,
若需要回滚的话,调用transaction的rollback方法进行回滚
若不回滚,提交更改的话,调用commit进行提交.
dychen 2003-11-11
  • 打赏
  • 举报
回复
如果是执行一条语句就没有必要使用事务处理了。
下面是实现更新的语句
string sqltxt="Update table Set field1='A' Where field2='B'"
SqlCommand PauseCommand=new SqlCommand(sqltxt,Conn)
int AffectRows=PauseCommand.ExecuteNonQuery()

其中AffectRows返回被更新的行数,足够使用了吧!Conn代表数据库连接,请确保它已经打开!
haoliqi 2003-11-11
  • 打赏
  • 举报
回复
myConnection.open()
CommandText="Update table Set field1='A' Where field2='B'"
Dim myCommand as New Sqlcommand(CommandText,myconnection)
myCommand .ExecuteNonQuery();

12,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧