Avatar billede noobsaibot Nybegynder
27. november 2005 - 16:33 Der er 22 kommentarer og
1 løsning

Ændre i stien til min Access databases placering

Hey jeg er i gang med et APS.NET projekt (C#) og har følgende sti til min databse:

Data Source=""C:\Inetpub\wwwroot\mitprojekt\db\minDB.mdb"";

Problemet er at jeg gerne vil have fjernet "C:\Inetpub\wwwroot\mitprojekt\" sådan at jeg kan publicere det på mit Webhotel.. Hvordan ændrer jeg stien så den automatisk går ind i "db" folderen??

Data Source=""[hvad skal der stå her??]\db\minDB.mdb"";

På forhånd tak ..
Avatar billede dr_chaos Nybegynder
27. november 2005 - 16:36 #1
du skal bruger Data Source=server.mappath("\db\minDB.mdb")
eller noget i den stil.
jeg vil foreslå at du udskriver resultatet af server.mappath med response.write(server.mappath("\db\minDB.mdb"))
Avatar billede noobsaibot Nybegynder
27. november 2005 - 16:41 #2
Okay ... Jeg er ikke lige med ..

Hvordan skal jeg gøre ghelt præcist :)

Jeg gør sådan her:

private static string connectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet

OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=""C:\Inetpub\wwwroot\mitProjekt\db\minDB.mdb"";Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet  OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica  Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";

public OleDbConnection connection = new OleDbConnection(connectionString);
Avatar billede dr_chaos Nybegynder
27. november 2005 - 16:49 #3
OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=""server.mappath("\db\minDB.mdb")"";Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet  OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica  Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
Avatar billede noobsaibot Nybegynder
27. november 2005 - 16:56 #4
Det vil vs ikke acceptere ...
Avatar billede dr_chaos Nybegynder
27. november 2005 - 17:26 #5
hvad fejl giver den ?
Avatar billede dr_chaos Nybegynder
27. november 2005 - 17:27 #6
OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=server.mappath("\db\minDB.mdb");Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet  OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica  Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
Avatar billede noobsaibot Nybegynder
27. november 2005 - 17:34 #7
Tror det er en syntax fejl - der kommer en masse røde streger (også med sidte forslag).
Avatar billede dr_chaos Nybegynder
27. november 2005 - 17:37 #8
jeg må lige prøve at teste det senere men kan du ikke kopierer kilde koden til en af siderne hvor du bruger din connectionstring her ind?
Avatar billede noobsaibot Nybegynder
27. november 2005 - 17:38 #9
oki - gør jeg lige.
Avatar billede noobsaibot Nybegynder
27. november 2005 - 19:50 #10
Jeg ved ikke helt hvilken kode du er int. i ..
Avatar billede noobsaibot Nybegynder
28. november 2005 - 09:09 #11
private static string connectionString = @"Jet OLEDB:Global Partial Bulk osv osv..

@'et gør jo at " server.mappath("\db\minDB.mdb") " bliver opfattet som en string ...

Derudover er det vel alm asp sprog ..

I c# skal anvendes noget i stil med:

Request.PhysicalApplicationPath

Da Access netop skal vide den fysiske sti .. Problemet bliver bare at konstruere connectionstring'en .. alle de @'er osv ..
Avatar billede noobsaibot Nybegynder
28. november 2005 - 09:11 #12
Jeg forsøgt mig lidt med at dele strengen op i 3, hvilket virker. Det er bare ikke en så "pæn" løsning ..

Desuden kan jeg ikke få lov til at anvende "Request" inde under en alm. klasse (stor problem - det er jo der jeg angiver min conString).. synes jeg user alle de relevante namespaces ..
Avatar billede dr_chaos Nybegynder
28. november 2005 - 09:39 #13
man bruger stadigvæk server.mappath i forbindelse med web applikationer.
prøv med denne connectionstring:
private static string connectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=" + Server.MapPath("/db/minDB.mdb") + ";Jet OLEDB:Engine Type=5;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet  OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica  Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
Avatar billede noobsaibot Nybegynder
28. november 2005 - 09:53 #14
Okay.
Får følgende fejl:

C:\Inetpub\wwwroot\WebApplication1\default.aspx.cs(26): 'System.Web.UI.Page.Server' denotes a 'property' where a 'class' was expected

(for Server)

Burde jeg ikke kunne teste på localhost?
Avatar billede noobsaibot Nybegynder
28. november 2005 - 09:54 #15
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
Avatar billede dr_chaos Nybegynder
28. november 2005 - 10:01 #16
prøv lige at smide hele sidens kode her ind.
Avatar billede noobsaibot Nybegynder
28. november 2005 - 10:06 #17
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;


namespace WebApplication1
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Label Label2;
        protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.Label Label1;

        private static string connectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=""C:\Inetpub\wwwroot\WebApplication1\db\db.mdb"";Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
               
        public OleDbConnection connection = new OleDbConnection(connectionString);
   
        private void Page_Load(object sender, System.EventArgs e)
        {
            Label1.Text = Request.PhysicalApplicationPath;
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void Button1_Click(object sender, System.EventArgs e)
        {
            string sql = "SELECT * FROM tblNavn";
           
            OleDbCommand com = new OleDbCommand(sql,connection);
            connection.Open();
            OleDbDataReader reader = com.ExecuteReader();

           
            if(reader.HasRows)
            {
                reader.Read();
               
                Label2.Text = reader.GetString(0);
            }   
               
            reader.Close();
            connection.Close();
        }
    }
}
Avatar billede noobsaibot Nybegynder
28. november 2005 - 10:06 #18
Det er som den er nu.
Avatar billede noobsaibot Nybegynder
11. august 2006 - 23:38 #19
Smid et svar. Så lukker vi :)
Beklager at jeg ikke har svaret tilbage før - er lige ved at ryde op.
Avatar billede noobsaibot Nybegynder
26. oktober 2006 - 12:56 #20
Jeg lukker.

mvh NoobSaibot
Avatar billede dr_chaos Nybegynder
26. oktober 2006 - 13:06 #21
havde ikke set at du bad om svar :(
Men det er ok fordi jeg hjalp dig vidst heller ikke meget på vej :)
Avatar billede noobsaibot Nybegynder
26. oktober 2006 - 13:18 #22
Kan efterhånden ikke huske det :)
Men du kan godt få point da, jeg samler alligevel ikke på dem.
Avatar billede dr_chaos Nybegynder
26. oktober 2006 - 13:28 #23
nej det er lige meget :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester