繁体   English   中英

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

[英]Inserting different data simultaneously from different clients

我用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数据库中的不同客户端插入数据,请告诉我。

谢谢。

这就是一个数据库服务器的作用 :“同时从不同的客户端插入数据”。

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

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

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

但是,您要做的第一件事是确定正在发生的事情。 由于您只有MSSQL Express(这不是用于生产的好选择!),所以最简单的方法可能是创建“日志”表:每次在“日志”中插入一行时,都会在“日志”中插入一个条目真实表,看看是否有东西“丢失”(即,日志表中的整体比数据表中的更多)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM