Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多线程访问SQL数据库_C#_Sql_Multithreading_Thread Safety - Fatal编程技术网

C# 多线程访问SQL数据库

C# 多线程访问SQL数据库,c#,sql,multithreading,thread-safety,C#,Sql,Multithreading,Thread Safety,我有一个服务器和“x”个客户端 当服务器侦听入站连接时,它将创建一个客户机处理程序实例(管理客户机通信的类),该实例将在单独的线程中分离 根据客户端发送给服务器的命令,服务器可能需要访问SQL数据库来存储有关该客户端的信息 客户端处理程序实例将“处理”此请求。唯一的问题是,如果多个客户机处理程序希望访问SQL数据库以执行完全相同的操作,那么可能会出现读/写问题 我考虑在服务器上公开一个静态方法,从客户端句柄实例调用它,然后锁定访问SQL数据库的函数(读或写) 这是一个好方法还是有更好的方法 谢谢

我有一个服务器和“x”个客户端

当服务器侦听入站连接时,它将创建一个客户机处理程序实例(管理客户机通信的类),该实例将在单独的线程中分离

根据客户端发送给服务器的命令,服务器可能需要访问SQL数据库来存储有关该客户端的信息

客户端处理程序实例将“处理”此请求。唯一的问题是,如果多个客户机处理程序希望访问SQL数据库以执行完全相同的操作,那么可能会出现读/写问题

我考虑在服务器上公开一个静态方法,从客户端句柄实例调用它,然后锁定访问SQL数据库的函数(读或写)

这是一个好方法还是有更好的方法


谢谢。

您知道SQL有锁和大量内部机制来序列化访问吗?这是自20世纪50年代创建SQL以来SQL中根深蒂固的酸性条件的一部分吗?SQL中的锁定机制非常好,基本上你试图解决一个60多年前已经解决的问题。。。。因为你似乎需要读一本关于SQL基础知识的书


在正常情况下(标准连接字符串),资源访问在SQL Server中序列化(TransactionIsolationLevel序列化),但这是可以调整的。我真的建议学习一些SQL基础知识。

好吧,你知道SQL有锁和大量内部机制来序列化访问吗?这是自20世纪50年代创建SQL以来SQL中根深蒂固的酸性条件的一部分吗?SQL中的锁定机制非常好,基本上你试图解决一个60多年前已经解决的问题。。。。因为你似乎需要读一本关于SQL基础知识的书


在正常情况下(标准连接字符串),资源访问在SQL Server中序列化(TransactionIsolationLevel序列化),但这是可以调整的。我真的建议您学习一些SQL基础知识。

SQL会处理它,并且无论哪个线程最后更新什么数据,都会保持记录的完整性—您在这里不会有损坏。但是,如果您讨论的是在不同版本的数据多次更新的情况下,哪些数据应该保留的特定规则,那么我们需要对您的数据有更多的了解,SQL会处理它,并且无论哪个线程最后更新什么数据,它都会保持记录的完整性——这里不会有损坏。但是,如果您正在讨论在不同版本的数据多次更新的情况下,哪些数据应该保留下来的具体规则,那么我们需要更多地了解您的数据,以及什么是保留下来的。