Solved

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

Posted on 2006-06-28
8
298 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

This article discusses the ASP.NET AJAX ModalPopupExtender control. In this article we will show how to use the ModalPopupExtender control, how to display/show/call the ASP.NET AJAX ModalPopupExtender control from javascript, how to show/display/cal…
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
As a trusted technology advisor to your customers you are likely getting the daily question of, ‘should I put this in the cloud?’ As customer demands for cloud services increases, companies will see a shift from traditional buying patterns to new…

920 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

16 Experts available now in Live!

Get 1:1 Help Now