2012-06-16 43 views
0

我在C#中创建了一个Windows窗体应用程序,并使用了数据库MS SQL server 2008 Express,并使用LINQ-to-SQL查询来插入和编辑数据。同时从不同的客户端插入不同的数据

该数据库位于服务器上,其服务器地址为Windows Server 2008 R2 (standard edition)。现在我的应用程序在五台不同的计算机上运行,​​用户通过活动目录进行身份验证。

向我报告的一个投诉是,有时当输入和提交不同的数据时,相同的数据不会出现在包含应用程序的列表中。我使用try catch块来发送错误,但错误不会出现在应用程序中;但数据只是消失。

表记录的id是一个整数自动增量。正如我必须告诉他们这是进入我使用下面的代码注册号:

try{ 
    ConectionDataContext db = new ConectionDataContext(); 
    Table_Registers tr = new Table_Registers(); 
    tr.Name=textbox1.text; 
    tr.sector=textbox2.text; 
    db.Table_Registers.InsertOnSubmit(tr); 
    db.SubmitChanges(); 
    int numberRegister=tr.NumberRegister; 
    MessageBox.Show(tr.ToString()); 
} 
catch{Exception e} 

我不知道我做错了,或者如果你知道在网络上的任何一篇文章,说的是如何在MSSQL Server数据库中插入来自不同客户端的数据,请告诉我。

谢谢。

回答

1

这就是数据库服务器DOES:“从不同客户端同时插入数据”。

一两件事你可以做的是考虑“交易”:

另一件事,你可以(也应该!)做的是确保尽可能多的工作,尽可能是在做服务器,通过使用 “存储过程”:

您还应该检查SQL Server错误日志,特别是对于潜在的死锁。您可以在SSMS GUI中或SQL Server安装下的“logs”目录中看到这些信息。

但是FIRST你需要做的是确定究竟发生了什么。由于您只有MSSQL Express(而不是是生产使用的不错选择!),最简单的方法可能是创建一个“日志”表:每次插入行时在“日志”中插入一个条目在真正的表中,看看东西是否“丢失”(即你的日志表中有更多的实体比数据表)。

+0

谢谢我会按照你的建议 – WizardDBA