Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
访问数据库,检查是否有人正在使用。。。(OLEDB/C#)_C#_Database_Connection_Oledb - Fatal编程技术网

访问数据库,检查是否有人正在使用。。。(OLEDB/C#)

访问数据库,检查是否有人正在使用。。。(OLEDB/C#),c#,database,connection,oledb,C#,Database,Connection,Oledb,我的线程化客户机/服务器应用程序有问题,我的serversid有一个Access DB,每个客户机有一个线程,但是如果两个客户机线程同时请求打开DB,我就会遇到问题。有没有办法检查数据库是否在使用中(我知道我可以有一个变量并保持控制/设置,但希望避免这种情况。下面是一个连接示例 String connectionString=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=”+dbPath+”; OLEDB连接=新的OLEDB连接(connectionString)

我的线程化客户机/服务器应用程序有问题,我的serversid有一个Access DB,每个客户机有一个线程,但是如果两个客户机线程同时请求打开DB,我就会遇到问题。有没有办法检查数据库是否在使用中(我知道我可以有一个变量并保持控制/设置,但希望避免这种情况。下面是一个连接示例

String connectionString=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=”+dbPath+”; OLEDB连接=新的OLEDB连接(connectionString);
OLEDB命令

我真的需要一些帮助


/Nick

因此,您可以在连接字符串中设置
Exclusive=1
,以授权只有一个连接可以使用此数据库。所有其他尝试都将失败。

您可以提供有关错误的更多详细信息吗?一些代码将很有帮助打开到数据库的连接的代码写在服务器上,然后使用锁定(线程中的同步)一次只允许一个用户打开连接。由于您使用的是OleDbConnection,请将连接字符串中的Mode属性设置为12-有关模式的完整列表,请参阅。只需将Mode=12附加到您的连接字符串中,第一个打开连接的应用程序将以独占模式打开连接-请参阅,以获取示例。这是针对OdbcCo的连接。您可以通过在连接字符串后面附加Mode=12来实现OleDbConnection。否则,+1。
connection.Open();
command = new OleDbCommand("UPDATE Client SET Online = " + online)
command.ExecuteNonQuery();
connection.Close();