Avatar billede decrypto Nybegynder
05. juni 2005 - 19:20 Der er 16 kommentarer og
1 løsning

Kan ikke få hul til access DB liggende hos min udbyder.

Jeg kan ikke få hul igennem til min Access DB, da jeg får en fejl:
The type or namespace name 'server' could not be found (are you missing a using directive or an assembly reference?)

Min streng ser således ud:

private const string Conn = "DBQ=" + Server.Mappath("gaestebog.mdb") + ";Driver={Microsoft Access Driver (*.mdb)}";

Det er Server.Mappath, fejler, jeg tror jeg mangler at inkludere en eller anden Using øverst i min kode.

Kan I hjælpe?
Avatar billede arne_v Ekspert
05. juni 2005 - 19:23 #1
Server vil være defineret for en codenehind klasse (som arver fra Page)

tør man gætte på at det er en database klasse ?
Avatar billede arne_v Ekspert
05. juni 2005 - 19:25 #2
prøv:

HttpContext.Current.Server.Mappath("gaestebog.mdb")
Avatar billede arne_v Ekspert
05. juni 2005 - 19:25 #3
men prøver du at kalde den i en ikke web context så får du besøg af mister null pointer exception
Avatar billede decrypto Nybegynder
05. juni 2005 - 19:50 #4
Det er database connector klasse jeg arbejder med....
Avatar billede decrypto Nybegynder
05. juni 2005 - 19:51 #5
Du kan lige se hele min klasse:

using System;
using System.Data;
using System.Data.OleDb;

namespace gaestebog.DAL
{
    /// <summary>
    /// Summary description for DbConnector.
    /// </summary>
    public sealed class DbConnector
    {   
                private const string Conn = "DBQ=" + Server.Mappath("gaestebog.mdb") + ";Driver={Microsoft Access Driver (*.mdb)}";       
        private OleDbConnection _connection;
        private OleDbConnection connection
        {
            get
            {
                if(_connection == null)
                    _connection = new OleDbConnection(Conn);
                return _connection;
            }
        }


        public OleDbDataReader DbConnect(string sql)
        {   
            OleDbConnection connection = new OleDbConnection(Conn);
            connection.Open();

            OleDbCommand sel = new OleDbCommand(sql, connection);
            OleDbDataReader rdr = sel.ExecuteReader(CommandBehavior.CloseConnection);

            return rdr;
        }

        public void DbClose()
        {
            connection.Close();
        }
    }
}
Avatar billede arne_v Ekspert
05. juni 2005 - 20:05 #6
har du prøvet 19:25:02 ?
Avatar billede decrypto Nybegynder
05. juni 2005 - 20:15 #7
HttpContext.Current.Server.Mappath("gaestebog.mdb") ja. Virkede ikke...
Avatar billede decrypto Nybegynder
05. juni 2005 - 20:16 #8
Kan man gøre det i en *.cs fil....er HttpContext.Current.Server.Mappath...kun i aspx filer??
Avatar billede decrypto Nybegynder
05. juni 2005 - 20:17 #9
i aspx mener jeg sæføli aspx codebehind.
Avatar billede arne_v Ekspert
05. juni 2005 - 20:17 #10
HttpContext.Current.Server.Mappath kan bruges overalt (i en web app).

Ligger din .mdb fil i roden af din web app ?

Prøv evt. at udskriv HttpContext.Current.Server.Mappath("gaestebog.mdb") og se om
det er rigtigt ...
Avatar billede decrypto Nybegynder
05. juni 2005 - 20:20 #11
hmmm using System.Web; skal smides øverst i koden..
Avatar billede decrypto Nybegynder
05. juni 2005 - 20:21 #12
private string Conn = "DBQ=" + HttpContext.Current.Server.MapPath("gaestebog.mdb") + ";Driver={Microsoft Access Driver (*.mdb)}";

Giver inegn kompileringsfejl mere...
Avatar billede decrypto Nybegynder
05. juni 2005 - 20:26 #13
Nu får jeg en:

Could not find installable ISAM.
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: Could not find installable ISAM.

og min conn streng ser således ud:
private string Conn = "Provider=Microsoft.Jet.OleDb.4.0;DBQ=" + HttpContext.Current.Server.MapPath("gaestebog.mdb") + ";Driver={Microsoft Access Driver (*.mdb)}; User ID=Admin;";
Avatar billede arne_v Ekspert
05. juni 2005 - 20:53 #14
sorry - jeg var ikke lige opmærksom på at den using manglede.

OLE DB har nogle gyselige exceptions.

Prøv først og skrot driver angivelsen.

Driver bruger man kun med ODBC ikke med OLE DB.
Avatar billede arne_v Ekspert
05. juni 2005 - 20:54 #15
DBQ er også ODBC

I OLE DB hedder det Data Source.

Altså:

private string Conn = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + HttpContext.Current.Server.MapPath("gaestebog.mdb") + ";User ID=Admin;";
Avatar billede decrypto Nybegynder
05. juni 2005 - 21:35 #16
Så virker det....svar ind og få point.
Avatar billede arne_v Ekspert
05. juni 2005 - 21:40 #17
:-)
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
Kurser inden for grundlæggende programmering

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