Solved

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

Posted on 2006-06-28
8
305 Views
Last Modified: 2012-06-21
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
Comment
Question by:deloused
  • 3
  • 2
8 Comments
 
LVL 23

Expert Comment

by:naveenkohli
ID: 17001093
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
 

Author Comment

by:deloused
ID: 17002091
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
 
LVL 23

Expert Comment

by:naveenkohli
ID: 17002275
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
 

Author Comment

by:deloused
ID: 17002389
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
 
LVL 23

Accepted Solution

by:
naveenkohli earned 500 total points
ID: 17002469
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

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now