Postgre SQL   发布时间:2022-05-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用PostgreSql和ADO.NET在C#WinForms中进行记录和表锁定大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的是.NET Framework 4.6.1,WinForms,POSTGResql 6.4beta4和Npgsql以及ADO.NET.

我当前的应用程序是一个多用户应用程序,其中所有用户都连接到同一个数据库.

使用Datatable,Binding@R_618_9016@e和BindingNavigator将数据绑定到控件.

我想避免两个用户同时编辑DaTarow.
因为我想在更通用的方法上实现这一点,所以我在虑创建一个Datatable后代并添加属性Lockmode(None,Row,tablE).

我发现您可以将columnChanged事件与RowState结合使用来检测数据的更改.

我现在知道用户是否正在插入新值,编辑(RowState =已修改)现有值或仅在记录中查找(RowState = Unchanged).

因此,我正在寻找一个用户开始编辑时锁定DaTarow的解决方案.在应用程序中,我想在用户导航(通过使用Bindingnavigator或以编程方式)到锁定记录时显示消息.

我找到的大多数解决方案都是针对MysqL Server的,例如:How to perform a row lock?或transactionScope locking table and isolationLevel.

但是我正在寻找POSTGResql解决方案,所以即使是MS(https://msdn.microsoft.com/en-us/library/system.transactions.transactionscope(v=vs.110).aspX)关于这个主题的文章也不能在这里使用.

如果有POSTGResql和ADO.NET经验的人能帮助我,我将不胜感激.谢谢.

您必须同步您的客户才能实现这一目标.

我将添加一个额外的可以为空的日期列(RowIsBeeingEdited),指示行开始编辑的时间.我会设置行可编辑/不在客户端应用程序开始行[RowIsBeeingEdited]值.

我还会实现两个信号:{UserStartedEdiTingRow}& {UserFinishedEdiTingRow},它将传播到所有客户端,表明客户端X已开始/完成编辑行Y.

在开始编辑行时,我将设置行[RowIsBeeingEdited] = {Now}并发送{UserStartedEdiTingRow}信号.在结束编辑时,我将设置行[RowIsBeeingEdited] = null并发送{UserFinishedEdiTingRow}信号.当前活动的客户端应该接收两个信号并设置行可编辑/不.

希望有一定的价值.

大佬总结

以上是大佬教程为你收集整理的使用PostgreSql和ADO.NET在C#WinForms中进行记录和表锁定全部内容,希望文章能够帮你解决使用PostgreSql和ADO.NET在C#WinForms中进行记录和表锁定所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: