问题描述
- C#中多个程序(线程)读写数据库的问题。
-
比如说我在程序A中进行修改数据库。
namespace A
{
class program
{
static void Main(string[] args)
{
DbConnection conn = new DbConnetion(...);
conn.Open();
DbCommand comm = new DbCommand("Insert into myTable (...) values (...)",conn);
comm.ExecuteNonquery();
conn.Close();
}
}
}
在程序B中读取数据库:
namespace B
{
class program
{
static void Main(string[] args)
{
DbConnection conn = new DbConnetion(同一个数据库);
conn.Open();
DbCommand comm = new DbCommand("Select * from MyTable",conn);
DbReader reader = comm.ExecuteRead();
while(reader.Read())
{
...
}
conn.Close();
}
}
}
那么我应该如何修改两个程序,使之能判断数据库的状态,从而推迟操作,当数据库闲置
时,再操作呢?
解决方案
这个看你需要完成什么样的效果 如果你不怕数据库中的脏读的话
在B中用Select * from MyTable(nolock)
如果你需要判断A中是否插入了数据 可以在B中先判断 然后再执行查询
解决方案二:
进程间的同步机制,是需要用到的。
时间: 2024-10-31 16:55:12