用于SQLServer访问的一个或多个数据库用户

时间:2015-11-03 12:30:27

标签: .net sql-server client-server

我开发了类似CRM的" .Net软件访问Microsoft SQLServer Express以从多个客户端进行数据存储。数据量很低(在网络中最多可以考虑8个人,在一天中偶尔会有5到10个条目)。 到目前为止 - 我没有考虑太多 - 我总是创建一个单一用户登录(和相应的密码)从任何客户端登录。这似乎工作正常,也适用于并发访问。

现在出现了一个问题,一台客户在她的计算机一次重启之后,软件似乎丢失了已保存的数据 - 让我们打电话给他们"条目&# 34; - 从最后一个会话,只为他们和#34;再次神奇地出现"在下次重启之后。奇怪的是,我的软件在单个事务中保存了输入条目,并且在我的末尾没有记录错误。所有条目都已从客户端软件中消失 - 即在第一次重新启动时无法读取/不在数据库中 - 并且所有条目在下次重新启动时再次出现 - 即。在数据库中,可以阅读。 用户报告的一件事是,她偶然关闭了她的机器(偶然托管服务器的机器),而另一个客户端仍然连接。该客户报告没有丢失的条目。

很抱歉这个问题缺乏详细信息和低保真技术说明,但我现在无法从Express Server访问日志文件 - 如果有的话 - 我绝不是非常SQLServer -savvy。

但我现在的问题是:这可能与两个客户通过同一个用户和登录分别独立连接的事实有关吗? 每个客户端有更好的单独用户(登录?)?是不是错了?或者这不是导致任何问题的原因(然后我不会遇到创建单独用户的麻烦)。

2 个答案:

答案 0 :(得分:2)

如果您在服务器上运行应用程序,则不需要连接多个登录。应用程序只有一个登录名和那个。应用程序负责数据访问。如果您能向我们展示保存数据的代码,那么解决问题会更容易。您是否使用SQL命令保存数据或EntityFramework?

注意:在数据库上提交事务后,它永远不会从数据库中删除。所以检查你的代码。它可能根本不提交数据库。

答案 1 :(得分:1)

你是如何连接SQL的?某些ORM(例如nHibernate)可以向当前用户显示事务,而不是在提交之前向其他用户显示事务。

没有理由为这么少的用户使用单独的连接。这听起来像代码问题,而不是连接问题。