Avatar billede decrypto Nybegynder
19. maj 2005 - 23:03 Der er 80 kommentarer og
1 løsning

Vi prøver igen DB connection til en access database, hvordan?

arne_v du må gerne poste dit eksempel ind igen.

Efter at jeg har erstattet MySQL med OleDB virker det ikke...

------------- kode ------------------

using System;
using System.Data.OleDb;

namespace gaestebog.DAL
{
    /// <summary>
    /// Summary description for DbConnector.
    /// </summary>
    public sealed class DbConnector
    {   

        // Lokalt
        private const string strConn = "Database=gaestebog;Data Source=gaestebog;User Id=admin;Password=xxxxx";

        private OleDbConnection _connection;
        private OleDbConnection SqlConnection
        {
            get
            {
                if(_connection == null)
                    _connection = new OleDbConnection(strConn);
                return _connection;
            }
        }


        public OleDbDataReader DbConnect(string SQL)
        {   
            // Til udskrivning af SQL til tests
            //System.Web.HttpContext.Current.Response.Write(SQL+"<br><br>");

            OleDbConnection SqlConnection = new OleDbConnection(strConn);
            SqlConnection.Open();

            OleDbCommand sel = new OleDbCommand(SQL, SqlConnection);
            OleDbDataReader rdr = sel.ExecuteReader(CommandBehavior.CloseConnection);
            return rdr;
        }

        public void DbClose()
        {
            SqlConnection.Close();
        }
    }
}
Avatar billede arne_v Ekspert
19. maj 2005 - 23:19 #1
du skal også rette strConn

se det her eksempel:

using System;
using System.Data.OleDb;

class MainClass
{
    public static void Main(string[] args)
    {
        OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Database\\MSAccess\\Test.mdb");
        con.Open();
        OleDbCommand cmd = new OleDbCommand("SELECT * FROM T1", con);
        OleDbDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read()) {
            int f1 = (int)rdr[0];
            string f2 = (string)rdr[1];
            Console.WriteLine(f1 + " " + f2);
        }
        con.Close();
    }
}
Avatar billede arne_v Ekspert
19. maj 2005 - 23:20 #2
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Database\\MSAccess\\Test.mdb"

stien skal naturligvis rettes til din database
Avatar billede decrypto Nybegynder
20. maj 2005 - 11:22 #3
Ok. jeg kigger på det, når jeg kommer hjem.
Avatar billede decrypto Nybegynder
20. maj 2005 - 11:29 #4
Så vidt jeg kan huske så brokkede compileren over 'CommandBehavior' i min kode...ved du om det er noget MYSQL specifikt.

Jeg ville jo blive mest glad, hvis jeg kunne bruge min eksisterende DBConnector klasse, og så bare rette den så den passer op imod access.
Avatar billede arne_v Ekspert
20. maj 2005 - 11:50 #5
det burde du sagtens kunne

System.Data.Behaviour burde ogs virke med OleDb
Avatar billede decrypto Nybegynder
20. maj 2005 - 21:36 #6
Hvordan skal jeg skrive det?

Jeg har forsøgt at erstatte CommandBehavior.CloseConnection med System.Data.Behavior.CloseConnection, men det virker ikke...
Avatar billede arne_v Ekspert
20. maj 2005 - 21:39 #7
CommandBehavior.CloseConnection

med en

using System.Data;

i toppen
Avatar billede decrypto Nybegynder
20. maj 2005 - 21:49 #8
Ahhh så tror jeg den er hjemme.
Avatar billede decrypto Nybegynder
20. maj 2005 - 21:59 #9
Ved du hvad det her betyder?

An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;'.
Avatar billede arne_v Ekspert
20. maj 2005 - 22:01 #10
den siger du mangler:

Provider=Microsoft.Jet.OLEDB.4.0
Avatar billede decrypto Nybegynder
20. maj 2005 - 22:02 #11
hmmmmm er det referencen eller skal det stå i min connection streng?

private const string strConn = "Database=gaestebog;Data Source=gaestebog;User Id=admin;Password=xxxxx"; <---- et eller andet sted her?
Avatar billede decrypto Nybegynder
20. maj 2005 - 22:03 #12
Eller er det noget, jeg skal downloade?
Avatar billede arne_v Ekspert
20. maj 2005 - 22:05 #13
private const string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\dbdir\\gaestebog.mdb;User Id=admin;Password=xxxxx";
Avatar billede decrypto Nybegynder
20. maj 2005 - 22:07 #14
ahh prøver liiiige...
Avatar billede decrypto Nybegynder
20. maj 2005 - 22:10 #15
Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
Avatar billede decrypto Nybegynder
20. maj 2005 - 22:12 #16
Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
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: Cannot start your application. The workgroup information file is missing or opened exclusively by another user.

Source Error:


Line 34:
Line 35:             OleDbConnection SqlConnection = new OleDbConnection(strConn);
Line 36:             SqlConnection.Open();
Line 37:
Line 38:             OleDbCommand sel = new OleDbCommand(SQL, SqlConnection);
Avatar billede arne_v Ekspert
20. maj 2005 - 22:31 #17
er filen åben i Access ?

Har ASPNET brugernavnet adgang til filen ?
Avatar billede decrypto Nybegynder
21. maj 2005 - 07:25 #18
Filen er ikke åbent i Access...hvordan giver man brugernavnet adgang til *.mdb filen?
Avatar billede decrypto Nybegynder
21. maj 2005 - 07:32 #19
Kan det måske være noget read/write rettigheder på min IIS?
Avatar billede decrypto Nybegynder
21. maj 2005 - 07:38 #20
Jeg har fundet en guide, hvor jeg tror jeg kan løse problemet, men jeg kan ikke finde et faneblad, der hedder security, når jeg højreklikker på den folder, hvori min access database ligger i...alt dette lyder bekendt, jeg tror jeg har været inde i denne proces en gang før for laaang tid siden med asp. Hvordan kan man gøre security fanebladet synlig....(har kigget i folder options....men ingen held...)
Avatar billede decrypto Nybegynder
21. maj 2005 - 07:41 #21
aaah fand måden at se security fanebladet...
Avatar billede decrypto Nybegynder
21. maj 2005 - 07:45 #22
Får stadigvæk...

Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
Avatar billede decrypto Nybegynder
21. maj 2005 - 07:54 #23
Jeg har nu også rodet ved IIS instillingerne på min folder der indeholder min access db...men det virker stadigvæk ikke.
Avatar billede decrypto Nybegynder
21. maj 2005 - 07:58 #24
Her er guiden som jeg brugte:

http://www.webwizguide.info/asp/faq/server_permissions.asp

Men jeg kunne ikke følge guiden helt, da dialog boxene så andeledes ud hos mig. Jeg gav derfor fulde rettigheder til hver kontotype.
Avatar billede decrypto Nybegynder
21. maj 2005 - 08:06 #25
Jeg har endda også slået min firewall fra, da jeg jeg tænkte, at den måske blokerede.
Avatar billede decrypto Nybegynder
21. maj 2005 - 08:15 #26
Det kan være det er denne del der fejler:

The workgroup information file is missing...
Avatar billede arne_v Ekspert
21. maj 2005 - 09:37 #27
Har du en eksplicit .mdw fil tilknyttet din.mdb fil ?
Avatar billede decrypto Nybegynder
21. maj 2005 - 09:38 #28
Har fundet følgende på Microsoft side:

"Cannot start your application. The workgroup information file is missing or opened exclusively by another user" Error

This error message occurs when a data access page cannot find the workgroup information file (.mdw). When you are using two-tier deployment, make sure that you put the workgroup file in a shared folder along with the database. Change the connection on the page to use the UNC path to the workgroup file as follows: 1. Start Microsoft Access, and then open the data access page that you are deploying in Design view.
2. Right-click the page, and then click Page Properties.
3. On the Data tab, click the Build (...) button to the right of the ConnectionString property.
4. On the All tab, change the Jet OLEDB:System database property to the UNC location for the workgroup file.
When you are using three-tier deployment, put the workgroup file with the database and make sure that the Jet OLEDB:System database property points to the correct path of the .mdw file.

Men det siger mig ikke en pind. Har prøvet at følge men page properties på hvad? Og hvor er denne data tab og Build(...) funktion henne?
Avatar billede decrypto Nybegynder
21. maj 2005 - 09:39 #29
Jeg har læst om det her .mdw, me er ikke sikker på hvad det er. Måske er det bare det har du et forslag, på hvordan jeg fikser .mdw?
Avatar billede arne_v Ekspert
21. maj 2005 - 09:46 #30
En .mdw fil er en fil med brugernavne/password til .mdb filer
Avatar billede decrypto Nybegynder
21. maj 2005 - 09:48 #31
Okay, kan det måske løse problemet?
Avatar billede decrypto Nybegynder
21. maj 2005 - 09:48 #32
Hvordan laver man sådan een?
Avatar billede arne_v Ekspert
21. maj 2005 - 09:55 #33
Du har en !

Åben .mdb filen med Access og gå ind i:

tools
security
workgroup administrator
Avatar billede arne_v Ekspert
21. maj 2005 - 09:55 #34
default er

C:\Documents and Settings\xxxx\Application Data\Microsoft\Access\System.mdw
Avatar billede decrypto Nybegynder
21. maj 2005 - 09:57 #35
Ahhhh fandt lige en af mine gamle tråde herinde og fandt guiden

http://support.yessoftware.com/kb_article.asp?article_id=4
Avatar billede decrypto Nybegynder
21. maj 2005 - 10:02 #36
Lort...den samme fejl.
Avatar billede decrypto Nybegynder
21. maj 2005 - 10:11 #37
Det hjalp ikke...jeg gik ind i access->tools->security->workgroup administrator->join... og valgte C:\Documents and Settings\MyName\Application Data\Microsoft\Access\System.mdw

Men jeg får stadigvæk samme fejl.
Avatar billede decrypto Nybegynder
21. maj 2005 - 10:15 #38
Jeg er ved at opgive....
Avatar billede arne_v Ekspert
21. maj 2005 - 10:17 #39
det var det vel allerede i forvejen

men har ASPNET brugernavnet adgang til den fil ?
Avatar billede decrypto Nybegynder
21. maj 2005 - 10:17 #40
Der er vel ikke noget i vejen for at DB ligger udenfor wwwroot, vel? den kan i princippet ligge på min desktop, er det korrekt?

Hvad kan jeg så gøre, jeg er ret desperat. Det burde da være ret ligetil, når det er Microsoft produkter...
Avatar billede decrypto Nybegynder
21. maj 2005 - 10:30 #41
ASPNET brugernavnet????
Avatar billede decrypto Nybegynder
21. maj 2005 - 11:34 #42
Jeg har osgå givet ASPNET fuld rettigheder.
Avatar billede decrypto Nybegynder
21. maj 2005 - 11:43 #43
Jeg har givet fuld rettigheder til
guest
All guests
IUSR-minmaskine
Developer
SQLdebugger

Ander ikke hvor mange flere jeg skal give rettigheder, før adgang til min DB er etableret.
Avatar billede arne_v Ekspert
21. maj 2005 - 11:48 #44
har du givet adgang til .mdb eller til .mdw eller til begge ?
Avatar billede arne_v Ekspert
21. maj 2005 - 11:49 #45
Prøv også evt. at angive eksplicit sti til .mdw filen i connection string.
Avatar billede arne_v Ekspert
21. maj 2005 - 11:51 #46
System database=C:\dir\system.mdw;
Avatar billede decrypto Nybegynder
21. maj 2005 - 12:00 #47
givet adgang til .mdb. Jeg har desuden været ind i ODBC manager og har oprettet en DNS tror jeg nok.
Avatar billede arne_v Ekspert
21. maj 2005 - 12:02 #48
det er kun nødvendigt hvis du ikke bruger DSNless
Avatar billede decrypto Nybegynder
21. maj 2005 - 12:03 #49
MIn conn streng hedder nu;

private const string Conn = "Provider=Microsoft.Jet.OLEDB.4.0;System database=C:\\Documents and Settings\\Mit navn\\Application Data\\Microsoft\\Access\\System.mdw;Data Source=C:\\Inetpub\\wwwroot\\db\\gaestebog.mdb;User Id=Admin;Password=xxxxxx";
Avatar billede decrypto Nybegynder
21. maj 2005 - 12:07 #50
Ja, jeg tænkte nok at ODBC manager ikke behøves, nu når jeg bruger oleDB provideren. Men denne sag irriterer mig gevaldigt. Jeg har uden problemer fået etableret kontakt med min MySQL, og nu prøver jeg at få kontakt med min Access base, hvilket burde være mere til da det Microsoft....men jeg KAN bare ikke f´å det til at spille.
Avatar billede arne_v Ekspert
21. maj 2005 - 12:37 #51
og har ASPNET brugernavnet adgang til MDW filen ?
Avatar billede decrypto Nybegynder
21. maj 2005 - 12:47 #52
Hvordan kan jeg give ASPNET adgang til MDW filen`?
Avatar billede decrypto Nybegynder
21. maj 2005 - 12:49 #53
Er der noget jeg SKAL gøre indefra Visual Studio .NET?
Avatar billede arne_v Ekspert
21. maj 2005 - 13:07 #54
du ændrer adgang til .mdw filen helt ligesom .mdb filen (securities fanebladet)
Avatar billede decrypto Nybegynder
21. maj 2005 - 13:18 #55
Nu har jeg givet IUSR adgang ASPNET og nogle andre adgang, men intet har hjulpet...
Avatar billede decrypto Nybegynder
21. maj 2005 - 13:42 #56
Nu har jeg konvereteret databasen til 2002-2003 format, tænkte måske at det ville hjælpe.....men nej....
Avatar billede decrypto Nybegynder
21. maj 2005 - 14:04 #57
Jeg tror måske jeg skal hæve point satsen....burde egentlig være en ting folk har skrevet om herinde før....forsøher lige at søge på det....herinde
Avatar billede decrypto Nybegynder
21. maj 2005 - 14:26 #58
Jeg er kommet til det punkt, hvor rettigheds delen på folderen og access databasen er iorden....der kan kun være noget andet galt....måske er der noget der skal sættes op i VS, eller hvad?????
Avatar billede decrypto Nybegynder
21. maj 2005 - 14:36 #59
Jeg har læst et sted på nettet, at jeg skal prøve at kopiere min *.mdw fil ind ved siden af min db fil, men det har heller ikke virket.
Avatar billede decrypto Nybegynder
21. maj 2005 - 14:44 #60
Tror I det vil hjælpe at fjerne password.
Avatar billede arne_v Ekspert
21. maj 2005 - 14:47 #61
Hvis ASPNET brugernavnet har adgang til .MDB og .MDW og brugernavn/password er korrekt
og stierne til filerne er korrekt så burde det virke
Avatar billede decrypto Nybegynder
21. maj 2005 - 15:02 #62
Så må det være noget andet....er der nogen der har et clue?
Avatar billede decrypto Nybegynder
21. maj 2005 - 15:35 #63
Jeg ahr tænkt på at følge dette eksempel:

"Cannot Start Your Application. The Workgroup Information File Is Missing Or Opened Exclusively By Another User"
This error message occurs when a data access page cannot find the workgroup information file (.mdw).
When you are using two-tier deployment, make sure that you put the workgroup file in a shared folder along with the database.
Change the connection on the page to use the UNC path to the workgroup file as follows:
- Start Microsoft Access
- Open the data access page that you are deploying in Design view Right-click the page
- Click Page Properties
On the Data tab, click the Build (...) button to the right of the ConnectionString property
- On the All tab, change the Jet OLEDB:System database property to the UNC location for the workgroup file
- When you are using three-tier deployment, put the workgroup file with the database and make sure that the Jet OLEDB:System database property points to the correct path of the .mdw file

Men hvad er en data access page ????
Avatar billede arne_v Ekspert
21. maj 2005 - 15:58 #64
hm

.aspx måske - hvis det er en Visual Studio ASP.NET guide
Avatar billede decrypto Nybegynder
21. maj 2005 - 16:03 #65
Jeg har kigget, men jeg kan ikke finde nogen DATA tab...
Avatar billede decrypto Nybegynder
21. maj 2005 - 16:14 #66
Det er noget access base specifik. jeg har fulgt eksemplet, men det har heller ikke hjulpet.
Avatar billede decrypto Nybegynder
21. maj 2005 - 16:34 #67
Nu har jeg fjernet mit password fra min conn streng, og følgende fejl kommer nu frem:

Could not find installable ISAM.
Avatar billede decrypto Nybegynder
21. maj 2005 - 16:36 #68
Jeg har også fjernet password sikkerheden på min Access base, og fejlen i detaljer:

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.

Source Error:


Line 33:
Line 34:             OleDbConnection SqlConnection = new OleDbConnection(Conn);
Line 35:             SqlConnection.Open();
Line 36:
Line 37:             OleDbCommand sel = new OleDbCommand(SQL, SqlConnection);
Avatar billede arne_v Ekspert
21. maj 2005 - 16:53 #69
jeg er vist ved at være løbet tør for ideer nu
Avatar billede decrypto Nybegynder
21. maj 2005 - 17:45 #70
Hvad hvis jeg prøver med ODBC`??? skal jeg så bare ikke erstatte alt oleDB med ODBC?
Avatar billede arne_v Ekspert
21. maj 2005 - 17:48 #71
connection string skal også lige justeres
Avatar billede arne_v Ekspert
21. maj 2005 - 17:49 #72
"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;"
Avatar billede arne_v Ekspert
21. maj 2005 - 17:49 #73
"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;Uid=Admin;Pwd=;"
Avatar billede decrypto Nybegynder
21. maj 2005 - 17:58 #74
AAAV for satan: Prøv lige at se den smøre her:

ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.
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.Odbc.OdbcException: ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4f4 Thread 0x75c DBC 0x438ad4 Jet'. ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.

Source Error:


Line 34:
Line 35:             OdbcConnection SqlConnection = new OdbcConnection(Conn);
Line 36:             SqlConnection.Open();
Line 37:
Line 38:             OdbcCommand sel = new OdbcCommand(SQL, SqlConnection);
Avatar billede arne_v Ekspert
21. maj 2005 - 18:17 #75
anden fejl besked

samme fejl
Avatar billede decrypto Nybegynder
21. maj 2005 - 20:02 #76
En interessant ting....jeg har lige kigget i min IIS manager og på min db folder står der et rødt skilt med error....kan det ikke være det, der giver problemos. Hvordan kan jeg behandle den error?
Avatar billede decrypto Nybegynder
21. maj 2005 - 20:15 #77
Har sat fuld skrive-læse rettigheder på filerne og folderen....men samme fejl.
Avatar billede decrypto Nybegynder
21. maj 2005 - 21:56 #78
Jeg tror jeg lukker denne arne_v giv et svar så giver jeg points....jeg starter en ny tråd.
Avatar billede arne_v Ekspert
21. maj 2005 - 22:00 #79
ok
Avatar billede decrypto Nybegynder
23. maj 2005 - 20:30 #80
Hej arne_v prøv og kig i min nye tråd....

http://www.eksperten.dk/spm/619557
Avatar billede arne_v Ekspert
23. maj 2005 - 20:44 #81
jeg er bange for at jeg er løbet lidt tør for ideer
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