从不同客户端同时插入不同的数据

时间:2012-06-16 02:34:05

标签: c# sql-server-2008 linq-to-sql

我在C#和数据库MS SQL server 2008 Express中创建了一个Windows窗体应用程序,并使用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 个答案:

答案 0 :(得分:1)

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

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

您可以(而且应该!)做的另一件事是确保尽可能多地在服务器上完成工作,使用“存储过程”:

您还应该检查SQL Server错误日志,尤其是潜在的死锁。您可以在SSMS GUI中或SQL Server安装下的“logs”目录中查看这些内容。

FIRST 你需要做的是确切地确定发生了什么。既然你只有MSSQL Express(是生产使用的好选择!),也许最简单的方法是创建一个“日志”表:在“log”中插入一个条目你在真实表中插入一行的时间,看看是否有“缺失”(即你在日志表中的数据比数据表多)。