我做的是.NET WINFORM程序,环境这样的:
计算机A,B,C,D,E 5台计算机 他们分别对录入的商品进行处理,
但是如果A,处理了,其他所有机器都不能处理,如果B处理了,其他所有计算机也都不能处理,依次类推,
也就是说操作的过程是不可以重复的操作,但是A-E还是同时进行的,有可能会发生装车现象,就是2面同时操作了,所以一般WINFORM来解决这样的问题是怎么处理的?我想用到进程锁定的办法(或者我的方法说不太清楚,或许不是这个名称),就是当第A电脑操作的时候他锁住这个东西,让其他人都不可以碰,我感觉应该用这样的方法,但是具体怎么实现呢? 或者我的办法有些麻烦?还是或者winform下解决这样的情况有别的办法? 如果说用我的办法,他叫什么名字?我怎么去查资料呢?
或者说一般你们来解决这个情况,用的什么方法来告诉我下也可以谢谢。?欢迎探讨MY qq 804206885 会的联系我下 谢谢 不会的帮我顶贴别白来,到时候我多给大家点分
计算机A,B,C,D,E 5台计算机 他们分别对录入的商品进行处理,
但是如果A,处理了,其他所有机器都不能处理,如果B处理了,其他所有计算机也都不能处理,依次类推,
也就是说操作的过程是不可以重复的操作,但是A-E还是同时进行的,有可能会发生装车现象,就是2面同时操作了,所以一般WINFORM来解决这样的问题是怎么处理的?我想用到进程锁定的办法(或者我的方法说不太清楚,或许不是这个名称),就是当第A电脑操作的时候他锁住这个东西,让其他人都不可以碰,我感觉应该用这样的方法,但是具体怎么实现呢? 或者我的办法有些麻烦?还是或者winform下解决这样的情况有别的办法? 如果说用我的办法,他叫什么名字?我怎么去查资料呢?
或者说一般你们来解决这个情况,用的什么方法来告诉我下也可以谢谢。?欢迎探讨MY qq 804206885 会的联系我下 谢谢 不会的帮我顶贴别白来,到时候我多给大家点分
不同的人做相同的事,我会给他生成新的编号!这样能防止数据错误,挺笨的方法,希望能开阔你的思路!
但是如果A,处理了,其他所有机器都不能处理,如果B处理了,其他所有计算机也都不能处理,依次类推,你用事务不就好了?添加事务的隔离级别TransactionOptions options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
{
try
{
//操作
scope.Complete();
}
catch(Exception) { }
}
根据你选一个下面的项就行了:
Serializable 可以在事务期间读取可变数据,但是不可以修改,也不可以添加任何新数据。
RepeatableRead 可以在事务期间读取可变数据,但是不可以修改。可以在事务期间添加新数据。
ReadCommitted 不可以在事务期间读取可变数据,但是可以修改它。
ReadUncommitted 可以在事务期间读取和修改可变数据。
Snapshot 可以读取可变数据。在事务修改数据之前,它验证在它最初读取数据之后另一个事务是否更改过这些数据。如果数据已被更新,则会引发错误。这样使事务可获取先前提交的数据值。
Chaos 无法覆盖隔离级别更高的事务中的挂起的更改。
Unspecified 正在使用与指定隔离级别不同的隔离级别,但是无法确定该级别。如果设置了此值,则会引发异常。