c#逐条修改数据问题
来源:百度知道 编辑:UC知道 时间:2024/05/27 04:08:39
全部要用程序实现,如果数据应用操作不成功,状态位就不改了,求详细实现代码…!比如数据库中有三个字段,int id(主键),varchar(50) data(数据项),int state(状态位),求详细代码…!
使用存储过程呗,执行两条sql语句就行了,一句是把要查询的记录标示成正在修改
然后把状态为正在修改的查处来不就行了
逐条读取的问题很好结决,使用C#Syetem.Data类中访问SqlServer的Reader对象和相应的方法打开数据库记录集就可以了。
对于读取后修改然后修改标志位,那就看你需要怎么更改了。
a,如果可以使用1条sql语句完成修改和标志位的更改那就很简单了,按照主键修改当前记录就可以。
b,如果使用1条sql语句无法完成以上2个修改,那就必须使用事务机制。C#提供了事务执行的方案。不过这个地根据实际情况,需要看帮助了,一句两句说不清楚。
总之,你的需求并不难实现。
数据操作不成功,状态位就不改了。
只需启用事务处理,其它的事情交给SQL2005吧。
先取出要处理的数据序列为List<String> ls
foreach (string data in ls)
{
using (System.Transactions.TransactionScope tx = new System.Transactions.TransactionScope())
{
try
{数据操作;
修改状态位;
}
tx.Complete();
result = "删除成功!";
catch (Exception e)
{
tx.Dispose();
result = "删除失败!";