• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 333
  • Last Modified:

Changing connection in datagrid, dataadapter and dataset to point to database on the server.

I have a solution that runs great on my computer but I'm unsure how to make it work when I upload it to the server.  I have a web forms page with a datagrid that fills data from a dataset.  I created it using visual studio and using the create dataset wizard after I created a data adapter.  The data adapter created a data connection that points to my local machine, C:\Inetpub\wwwroot\nts\db\db_nts_web.mdb, but I need everything to point to my server connection instead.

The connection on my server looks like this:  E:\inetpub\myhost\mywebsite.com\httpdocs\db\db_nts_web.mdb

Am I retarded or is there an easy way to make this change?  

Any help would be greatly appreciated and would save my sanity.
0
deloused
Asked:
deloused
  • 3
  • 2
1 Solution
 
naveenkohliCommented:
You can always modify the connection string in page_load event of your page to point to different location. If your MDB file lives in "httpdocs\db\db_nts_web.mdb" under root folder of your virtual directory, then use Server.MapPath to get actual physical path to the file and then fix your connection string with that path.

String strConn = String.Format("............................ file={0}", Server.MapPath("~/httpdocs/db/db_nts_web.mdb"));
0
 
delousedAuthor Commented:
It's still looking for the database on my computer instead of the sever.  Now I'm getting this error:  C:\Inetpub\wwwroot\db\db_nts_web.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.  Source Error:  An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

My page load event looks like this:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strConn = String.Format("............................ file={0}", Server.MapPath("~/httpdocs/db/db_nts_web.mdb"))
        OleDbDataAdapter1.Fill(DsEditJobBoard1)
        If Not IsPostBack Then
            DataGrid1.DataBind()
        End If
    End Sub

It goes back the main problem of knowing how to buile a data adapter that points to the server database instead of to my computer.  
0
 
naveenkohliCommented:
You can't without creating a share on the server. Network access to file system is through shares. You will have to do following steps.

1. On your server create a share for the folder where your database is. And make sure that you give read/write access to this share to a valid windows under account who can access this share for all read/write operations. Lets say that share is "MyDatabase"
2. now fix your connection string and specify path as "\\MyServer\MyDatabase\db_nts_web.mdb"

There is major security issue with this approach because you are opening up access to your server through that share. Second you have to make sure that your ASP.Net process runs under context of user who has access to that share. MS Access database is used for local access and not a great solution for network based access.
0
 
delousedAuthor Commented:
How would it be different if I was using a SQL server database instead?  I would still have to redirect all of the project I am building on my machine to point to a database on the server right?  Would I have to create shares with SQL server as well?  

I am very new to this and had trouble getting my sql server database to test on my machine is the only reason why I went with Access.  It's a fairly small application but I would rather do it the right way than have any security issues.
0
 
naveenkohliCommented:
Access to MSAccess database is through file system access. Consider it like using CreateFile operation on a file in your server. So for that to happen the user have to have proper authorization and all that good stuff. MSAccess is not a client-server architecture
Where as SQL Server is server thhat has a service listening on port 1433(default). When you access SQL Server using SqlConnection object, it actually sends RPC commands to SQL Server on that server and SQL Server service responds to those commands. So the real access to the database files is happening on local box itself but the commands are coming from a remote server.

Make sense?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now