【发布时间】:2014-09-08 12:51:41
【问题描述】:
我正在使用带有 vb.net 4.0 版、Sql Server Express Edition 2008 的 asp.net 我在 App_Data 中有一个名为“数据库”的数据库。我正在使用 WCF 服务连接到数据库并从数据库表中获取登录凭据,它给了我错误。即使在 default.aspx 中使用。它给出了同样的错误。
System.Data.SqlClient.SqlException (0x80131904): Unable to open the physical file "c:\Documents and Settings\Sahil\My Documents\Visual Studio 2010\WebSites\TestSite\App_Data\Database.mdf". Operating system error 32: "32(The process cannot access the file because it is being used by another process.)".
Cannot attach the file 'c:\Documents and Settings\Sahil\My Documents\Visual Studio 2010\WebSites\TestSite\App_Data\Database.mdf' as database 'database'.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at login.checkLogin(String username, String pass, String role)
这是 web.config 文件中的连接字符串
<connectionStrings>
<add name="connection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=c:\Documents and Settings\Sahil\My Documents\Visual Studio 2010\WebSites\TestSite\App_Data\Database.mdf;Database=database;Integrated Security=True;User Instance=True "/>
</connectionStrings>
WCFservice vb代码文件中的代码如下
dim errorstring as string =""
Dim reader as SqlDataReader
Dim connection As New SqlConnection
connection.ConnectionString = ConfigurationManager.ConnectionStrings("connection").ConnectionString
Dim command As New System.Data.SqlClient.SqlCommand
command.Connection = connection
Dim reader As SqlDataReader
Dim user As String = username
Dim passwd As String = pass
Dim LoginRole = role
command.CommandText = "select [username],[password] from login where username =@user and role=@role"
command.Parameters.Add("@user", Data.SqlDbType.VarChar).Value = user
command.Parameters.Add("@role", Data.SqlDbType.VarChar).Value = role
command.connection = connection
try
connection.open()
reader = command.executereader
catch(Exception ex)
errorstring =ex.toString()
finally
connection.close()
【问题讨论】:
标签: asp.net .net vb.net sql-server-2008