2

我对 .NET、C# 和 SQL Server 非常陌生。

我需要使用 C# 开发一个套接字应用程序。该应用程序应针对某些请求,、、、等数据库中的insert数据deleteupdate

我需要使用 C# 开发另一个 Windows 服务应用程序,通过 http 将数据库中的数据发送到 Web 应用程序。

这两个应用程序在同一系统中运行。数据库是 SQL Server。两个应用程序都使用相同的数据库。

我不确定当一个应用程序在数据库中删除或插入数据时,另一个应用程序是否仍然能够同时访问数据库。

4

3 回答 3

3

Sql Server 可以很好地处理多个请求。每个连接的客户端都有一个不同的spid

但是,由您的 sql server 代码(批处理或存储过程)通过隔离级别和事务处理数据并发问题。因此,为了控制一个用户在其他用户更新、删除等时读取数据,您需要使用隔离级别和锁。

隔离级别:

http://msdn.microsoft.com/en-us/library/aa213034(v=sql.80).aspx

另外:http ://dbalink.wordpress.com/2008/05/27/isolation-levels-and-locks-in-sql-server-2005/

关于交易的好文章:

http://aspnet.4guysfromrolla.com/articles/072705-1.aspx

于 2012-08-21T11:53:27.893 回答
0

我认为简单的答案是肯定的——多个应用程序/人可以同时访问一个数据库。

您可能需要阅读数据库中的事务和并发:

http://en.wikipedia.org/wiki/Atomicity_(database_systems )

http://msdn.microsoft.com/en-us/library/cs6hb8k4(v=vs.80).aspx

于 2012-08-21T11:53:29.403 回答
0

可以通过任意数量的应用程序访问同一个 sql server 数据库。如果您担心一个应用程序会尝试同时读取另一个应用程序正在更改的数据,请阅读有关事务和隔离的信息。但简而言之,如果你做了一个只需要一行 sql 代码的小原子更改,你现在可能不应该关心这个。

于 2012-08-21T11:54:57.330 回答