|
-
Aug 9th, 2002, 08:40 AM
#1
Thread Starter
Member
Problems with ACCESS in WEB-project
I have tried to present data from an ACCESS database in a Datagrid in a ASP.net web project, but there seems to be some problem with security. I get SERVER ERROR and it is either "It is not possible to open the nn.mdb file" because of rights-problems or it is not possible to lock the nn.mdb file.
I guess it is a combination of local file security settings and security settings within the ACCESS database file.
Is there anyone out there who can help me with this problem??
Thank you very much in advance.
/Anders
-
Aug 9th, 2002, 08:44 AM
#2
can you post the exact errors? If so I will look up some info on them.
-
Aug 9th, 2002, 08:47 AM
#3
Thread Starter
Member
Server Error in '/WebApplication2' Application.
--------------------------------------------------------------------------------
Det går inte att låsa filen.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: Det går inte att låsa filen.
Source Error:
Line 104: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Line 105: DataSet11.Clear()
Line 106: OleDbDataAdapter1.Fill(DataSet11)
Line 107:
Line 108: End Sub
Source File: c:\inetpub\wwwroot\WebApplication2\WebForm1.aspx.vb Line: 106
Stack Trace:
[OleDbException (0x80004005): Det går inte att låsa filen.]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
System.Data.OleDb.OleDbConnection.InitializeProvider() +57
System.Data.OleDb.OleDbConnection.Open() +131
System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +44
System.Data.Common.DbDataAdapter.Fill(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +98
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +38
WebApplication2.WebForm1.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\WebApplication2\WebForm1.aspx.vb:106
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1263
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.0.3705.0; ASP.NET Version:1.0.3705.0
-
Aug 9th, 2002, 08:52 AM
#4
make sure that directory where you have that database has rights (for
ASPNET_WP user) to create, modify and delete file
-
Aug 9th, 2002, 09:17 AM
#5
Thread Starter
Member
YES!!
It was the ASPNET-user rights that causing that problem. No errors now!
But I still have some problems. As you could see in the code I tried to refresh the dataset by clicking the button, but no datagrid appears on the screen for some reason. I thought it would be enough just to define the datasource for the datagrid..... There still is someting I don't understand. I have tried to make the same type of connection with a datagrid in a windows-form project and that works fine.
-
Aug 9th, 2002, 09:23 AM
#6
-
Aug 9th, 2002, 09:30 AM
#7
Thread Starter
Member
Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapter
Protected WithEvents OleDbSelectCommand1 As System.Data.OleDb.OleDbCommand
Protected WithEvents OleDbInsertCommand1 As System.Data.OleDb.OleDbCommand
Protected WithEvents OleDbUpdateCommand1 As System.Data.OleDb.OleDbCommand
Protected WithEvents OleDbDeleteCommand1 As System.Data.OleDb.OleDbCommand
Protected WithEvents OleDbConnection1 As System.Data.OleDb.OleDbConnection
Protected WithEvents DataSet11 As WebApplication2.DataSet1
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.OleDbDataAdapter1 = New System.Data.OleDb.OleDbDataAdapter()
Me.OleDbDeleteCommand1 = New System.Data.OleDb.OleDbCommand()
Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnection()
Me.OleDbInsertCommand1 = New System.Data.OleDb.OleDbCommand()
Me.OleDbSelectCommand1 = New System.Data.OleDb.OleDbCommand()
Me.OleDbUpdateCommand1 = New System.Data.OleDb.OleDbCommand()
Me.DataSet11 = New WebApplication2.DataSet1()
CType(Me.DataSet11, System.ComponentModel.ISupportInitialize).BeginInit()
'
'OleDbDataAdapter1
'
Me.OleDbDataAdapter1.DeleteCommand = Me.OleDbDeleteCommand1
Me.OleDbDataAdapter1.InsertCommand = Me.OleDbInsertCommand1
Me.OleDbDataAdapter1.SelectCommand = Me.OleDbSelectCommand1
Me.OleDbDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "namn", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("namn", "namn"), New System.Data.Common.DataColumnMapping("telefon", "telefon")})})
Me.OleDbDataAdapter1.UpdateCommand = Me.OleDbUpdateCommand1
'
'OleDbDeleteCommand1
'
Me.OleDbDeleteCommand1.CommandText = "DELETE FROM namn WHERE (ID = ?) AND (namn = ? OR ? IS NULL AND namn IS NULL) AND " & _
"(telefon = ? OR ? IS NULL AND telefon IS NULL)"
Me.OleDbDeleteCommand1.Connection = Me.OleDbConnection1
Me.OleDbDeleteCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ID", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, False, CType(10, Byte), CType(0, Byte), "ID", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbDeleteCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_namn", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "namn", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbDeleteCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_namn1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "namn", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbDeleteCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_telefon", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "telefon", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbDeleteCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_telefon1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "telefon", System.Data.DataRowVersion.Original, Nothing))
'
'OleDbConnection1
'
Me.OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Inetpub" & _
"\wwwroot\db5.mdb;Mode=Share Deny None;Extended Properties="""";Jet OLEDB:System da" & _
"tabase="""";Jet OLEDB:Registry Path="""";Jet OLEDB atabase Password="""";Jet OLEDB:En" & _
"gine Type=5;Jet OLEDB atabase Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=" & _
"2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OL" & _
"EDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB on'" & _
"t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Je" & _
"t OLEDB:SFP=False"
'
'OleDbInsertCommand1
'
Me.OleDbInsertCommand1.CommandText = "INSERT INTO namn(namn, telefon, ID) VALUES (?, ?, ?)"
Me.OleDbInsertCommand1.Connection = Me.OleDbConnection1
Me.OleDbInsertCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("namn", System.Data.OleDb.OleDbType.VarWChar, 50, "namn"))
Me.OleDbInsertCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("telefon", System.Data.OleDb.OleDbType.VarWChar, 50, "telefon"))
Me.OleDbInsertCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("ID", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, False, CType(10, Byte), CType(0, Byte), "ID", System.Data.DataRowVersion.Current, Nothing))
'
'OleDbSelectCommand1
'
Me.OleDbSelectCommand1.CommandText = "SELECT namn, telefon, ID FROM namn"
Me.OleDbSelectCommand1.Connection = Me.OleDbConnection1
'
'OleDbUpdateCommand1
'
Me.OleDbUpdateCommand1.CommandText = "UPDATE namn SET namn = ?, telefon = ?, ID = ? WHERE (ID = ?) AND (namn = ? OR ? I" & _
"S NULL AND namn IS NULL) AND (telefon = ? OR ? IS NULL AND telefon IS NULL)"
Me.OleDbUpdateCommand1.Connection = Me.OleDbConnection1
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("namn", System.Data.OleDb.OleDbType.VarWChar, 50, "namn"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("telefon", System.Data.OleDb.OleDbType.VarWChar, 50, "telefon"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("ID", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, False, CType(10, Byte), CType(0, Byte), "ID", System.Data.DataRowVersion.Current, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ID", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, False, CType(10, Byte), CType(0, Byte), "ID", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_namn", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "namn", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_namn1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "namn", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_telefon", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "telefon", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_telefon1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "telefon", System.Data.DataRowVersion.Original, Nothing))
'
'DataSet11
'
Me.DataSet11.DataSetName = "DataSet1"
Me.DataSet11.Locale = New System.Globalization.CultureInfo("sv-SE")
Me.DataSet11.Namespace = "http://www.tempuri.org/DataSet1.xsd"
CType(Me.DataSet11, System.ComponentModel.ISupportInitialize).EndInit()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataSet11.Clear()
OleDbDataAdapter1.Fill(DataSet11)
End Sub
End Class
-
Aug 9th, 2002, 09:37 AM
#8
after you fill the datase you need to set the datagrid datasource to that dataset
datagrid1.datasource = yourdataset.Tables(0).DefaultView
datagrid1.DataBind()
-
Aug 9th, 2002, 09:44 AM
#9
Thread Starter
Member
IT WORKS NOW
Thank you for your patience with a .net rookie.
/Anders
-
Aug 9th, 2002, 09:47 AM
#10
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|