2010-11-10 117 views
0

我正在开发在网络上运行的应用程序。它需要经常联系到数据库(访问数据库),它存储在服务器中。几乎每隔2-3秒就有大约30台客户端计算机联系数据库。我需要知道应用程序中是否存在潜在的明显问题?存储在服务器上的数据库的潜在问题

如果数据库正在被一个客户端更新,同时其他客户端与它联系,会不会有问题?

非常感谢。怀着最诚挚的问候, Furqan

回答

3

MS Access在超过大约5-10个并发连接时表现不佳。使用SQL Server Express Edition代替。

SQL Server Express Edition Overview

看一看的SQL Server Migration Assistent从MS Access到SQL Server 2008

+0

感谢您的咨询。我真的不知道如何在SQL Server Express中创建和访问数据库。你能给我一个提示吗? – 2010-11-10 10:18:32

+0

试试这个:http://www.online-tech-tips.com/ms-office-tips/ms-access-to-sql-database/ – 2010-11-10 10:20:43

+0

连接到SQL Server Express只是使用正确的连接字符串。 – 2010-11-10 10:21:05

0

它在你的应用程序中的编码取决于课程。我有类似的应用程序运行在工作中,并没有遇到问题。唯一需要注意的是需要读取数据库的函数。所以一些提示可能会很方便。

首先,尝试限制数据库连接打开的时间(正如Mitch指出的那样)。

其次,尽量避免读取和保存查询之间的大块可执行代码。不要读取数据库中的最大ID,然后运行需要超过0.5秒的代码才能执行,然后保存需要数据库中最大ID的记录。如果其他用户同时插入了新项目,这可能会出错。

0

要连接到SQL Express使用的块这样的代替:

Dim conn As SqlClient.SqlConnection = New Data.SqlClient.SqlConnection("Server=" & servername & ";Database=" & databasename & ";User ID=" & userid & ";Password=" & password & ";Trusted_Connection=False;") 

Dim sqlstatement As String = "INSERT INTO " & table & " (ATime,AStringWithLimitedLength,AnInteger,AString)" 
sqlstatement &= " VALUES (@dates,@chars,@ints,@string)" 
Dim comm As New SqlClient.SqlCommand(sqlstatement, conn) 
With comm.Parameters 
    .Add("@dates", SqlDbType.DateTime).Value = Me.Timestamp 
    .Add("@chars", SqlDbType.VarChar).Value = Me.Type 
    .Add("@ints", SqlDbType.Int).Value = Me.UserID 
    .Add("@string", SqlDbType.Text).Value = Me.SQL 
End With 
conn.Open() 
comm.ExecuteNonQuery() 
conn.Close() 

总而言之非常相似,MSACCESS,只是你不使用OLEDB但SqlClient中。您可能需要下载(免费)'SQL Server Management Studio Express'以所见即所得的方式修改您的数据库。

相关问题