Avatar billede tama Nybegynder
19. januar 2006 - 11:52 Der er 6 kommentarer og
1 løsning

Oprette forbindelse til Access eller SQL server

Hej Eksperter

Jeg er igang med at udforske ASP.NET 2.0, og har i den forbindelse lavet en application.
Det har egentligt gået meget nemt, men jeg er løbet på et lille problem nu, hvor jeg gerne vil lave en databaseforbindelse.
Jeg har installeret en SQL-Server som kører localt på min computer, som jeg har prøvet at komme i kontakt med, men får følgende fejlbesked når jeg prøver at kalde 'Open' metoden på connection attributten.

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Koden ser sådanne ud:
odbcConnection = new OdbcConnection(WebConfigurationManager.ConnectionStrings["standard"].ConnectionString);
odbcConnection.Open();                  <--- fejler her
dbCommand = new OdbcCommand();
dbCommand.Connection = odbcConnection;
dbCommand.CommandType = CommandType.Text;

Og connectionstring ser sådanne ud, i min web config fil.
"Driver={SQL Server};Server=localhost;Database=jehe;Trusted_Connection=yes;

Derudover har jeg prøvet at lave en Access fil, og forbinde til den.
Med nedenstående connectionstring fik jeg samme fejlmeddelse.
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\jehe\App_Data\db.mdb;"

Dog prøvede jeg så med denne,
"Driver={Microsoft Access Driver(*.mdb)};Dbq=C:\Inetpub\wwwroot\jehe\App_Data\db.mdb;"
og fik faktisk hul igennem. Dog melder browseren tilbage, efter at den har åbnet forbindelsen og hentet data ud, med følgende mærkelige fejlmeddelse.


-----------------------------------------------------------------

Server Error in '/jehe' Application.

Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.
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.

SQLExpress database file auto-creation error:

The connection string specifies a local Sql Server Express instance using a database location within the applications App_Data directory. The provider attempted to automatically create the application services database because the provider determined that the database does not exist. The following configuration requirements are necessary to successfully check for existence of the application services database and automatically create the application services database:

If the applications App_Data directory does not already exist, the web server account must have read and write access to the applications directory. This is necessary because the web server account will automatically create the App_Data directory if it does not already exist.
If the applications App_Data directory already exists, the web server account only requires read and write access to the applications App_Data directory. This is necessary because the web server account will attempt to verify that the Sql Server Express database already exists within the applications App_Data directory. Revoking read access on the App_Data directory from the web server account will prevent the provider from correctly determining if the Sql Server Express database already exists. This will cause an error when the provider attempts to create a duplicate of an already existing database. Write access is required because the web server accounts credentials are used when creating the new database.
Sql Server Express must be installed on the machine.
The process identity for the web server account must have a local user profile. See the readme document for details on how to create a local user profile for both machine and domain accounts.

-----------------------------------------------------------------

Jeg har selvfølgelig tjekket at IIS har read/write addgang til App_Data og at filen findes på den angivne position.

Håber der er nogle derude der har lidt ekspertise inden for dette område.
Avatar billede jeppebecool Nybegynder
19. januar 2006 - 12:00 #1
Prøv eventuelt at lave et breakpoint lige før du kalder open på din connection, og tjeck at din connectionstring er initializeret.

eks:
string s = odbcConnection.ConnectionString

Hvis den er det er det din connectionstring der er noget galt med.
En nem måde at få en connectionstring på er at smide en sqlconnection, og en sqlcommand ind på formen ( de ligger under data fanen ), og så klikke på [..] knappen under sqlconnectionen's datasource property. Der kan du også teste om det virker. Når du har gjort det kan du kopiere teksten fra property vinduet, men hvorfor ikke bare beholde den. Obs. Hvis du alligevel skal kommunikere med sql server så brug sqlconnection i stedet for odbcConnection. Du får meget bedre fejlmeddelelser på den måde.

Hilsen Jeppe
Avatar billede jeppebecool Nybegynder
19. januar 2006 - 12:01 #2
Hov ... ikke din connections datasource property, men dens connectionstring property selvfølgelig.
Avatar billede dr_chaos Nybegynder
19. januar 2006 - 12:10 #3
prøv evt med
odbcConnection = new OdbcConnection(System.Configuration.ConfigurationManager.ConnectionStrings["standard"].ConnectionString)
Avatar billede dr_chaos Nybegynder
19. januar 2006 - 12:12 #4
og din connection del i web.config kan se ud på denne måde:
    <connectionStrings>
        <add name="ConnectionString" connectionString="server=localhost;database=jehe;"/>
    </connectionStrings>
Avatar billede tama Nybegynder
19. januar 2006 - 12:19 #5
Jeg har tjekket at min connectionstring er rigtig
har blandt andet lavet en:
System.IO.File.Exist(filen der står i connectionstring);
og den returnerer true
Avatar billede tama Nybegynder
19. januar 2006 - 12:21 #6
Skal man lave nogle specielle referencer når man laver databaseforbindelser?
Avatar billede tama Nybegynder
20. januar 2006 - 12:19 #7
Nå men jeg lukker og slukker
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