Avatar billede danm Nybegynder
21. april 2007 - 15:24 Der er 5 kommentarer og
3 løsninger

Bruge OLEDB til at forbinde til SQL server database i vb2005

Ja, kan jeg bruge OleDB til at forbinde til en SQL server 2005 express database.
Jeg bruger visual basic 2005, og hvis det kan lade sig gøre, hvordan skal jeg så skrive min connection string?
Og er det meget langsommere at bruge OleDB istedet for den SQLconnection der er implementeret i vb2005?

Grunden til at jeg gerne vil bruge Oledb er at jeg gerne vil kunne skifte database type uden at skulle skifte al database kode i mit programm..
Avatar billede nielle Nybegynder
21. april 2007 - 16:28 #1
Du kan mig bekendt ikke bruge OleDb til at arbejde med SQL Server.

1) Du kan alternativt skifte over til at bruge Odbc i stedet for OleDb.
2) Du kan bruge IDbConnection istedet for at bruge SqlConnection og OleDbConnection - og legedan for disses "søskende".

Metode nr. 2 er "den rigtige" måde at gøre det på i .Net 2.0
Avatar billede arne_v Ekspert
21. april 2007 - 17:32 #2
Et pat supplerende kommentarer.

IDbConnection er den rigtige måde at gøre det på både i .NET 1.1 og 2.0 - det er bare
meget nemmere at bruge det i .NET 2.0 som har DbProviderFactory.

Principielt kan man godt bruge OLE DB mod SQLServer i .NET - den samme connection
string som man bruger i ADO i f.eks. ASP bør virke fint med ADO.NET OleDbConnection:

"Provider=SQLOLEDB;Data Source=dinserver;Initial Catalog=dindatabase;Integrated Security=SSPI;"

men det er ikke nogen god ide.

SqlClient vil give:
  - bedre performance
  - bedre fejl beskeder
  - flere muligheder
  - mindre afhængighed (af at OLE DB provideren er installeret)
Avatar billede nielle Nybegynder
21. april 2007 - 18:04 #3
I stand corrected :^)
Avatar billede midcom Nybegynder
27. maj 2007 - 14:32 #4
Jeg bruger OleDBConnection til sql database dagligt.

Imports System.Data.OleDb
Public MyCon As OleDbConnection

Try
            MyCon = New OleDbConnection("provider=SqlOleDB; SERVER=WEB01INT; UID=DinBruger; PWD=Ditpassword; DATABASE=DinDatabase")
            If MyCon.State = ConnectionState.Closed Then
                MyCon.Open()
            End If
        Catch e As Exception
            MsgBox("Connection to server failed.. No response", MsgBoxStyle.Critical)
            Err.Clear()
            End
        End Try
Avatar billede midcom Nybegynder
27. maj 2007 - 14:35 #5
Og for at hente data
        Dim DbRead As OleDbDataReader
        Dim DbCmd As OleDbCommand
        Try
            DbCmd = New OleDbCommand("Select * From Dintabel", MyCon)
            DbRead = DbCmd.ExecuteReader
            While DbRead.Read
                Dim Data1 as string = CStr(DbRead.Item("FeltNavn"))
            loop
        Catch ex As Exception
                Err.Clear()
        End Try
Avatar billede danm Nybegynder
28. maj 2007 - 22:26 #6
Super.. Arne_V smid lige svar, så vil jeg dele dem med midcom..
Avatar billede arne_v Ekspert
29. maj 2007 - 14:48 #7
svar
Avatar billede midcom Nybegynder
29. maj 2007 - 16:55 #8
svar
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