Path Database VB2008 Express

Status
Niet open voor verdere reacties.

Magistro

Gebruiker
Lid geworden
21 aug 2007
Berichten
26
Hallo Allemaal,

Ik ben bezig met een projectje. Ik heb een database waarin in gegevens toe ga voegen doormiddel van textboxen.

Ik maak nu verbinding met de database die natuurlijk nu nog op mijn eigen computer staat, op een locatie waarvan ik het pad weet, dus dit heb ik ook ingevoerd in onderstaande code. Een andere mogelijkheid om verbinding te maken met de database kreeg ik niet voor elkaar, ik heb hier 2 dagen op liggen puzzelen.

Hieronder de code die ik gebruik om verbinding te maken met mijn database (even voor de duidelijkheid: het werkt allemaal goed :D ) Het stuk waar het om gaat heb ik rood gemaakt.

Code:
Public Class Form1

    Dim ConnString1 As String = [B][COLOR="Red"]"Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=D:\Werk\Wouter\Visual Basic\Gegevensadministratie\Gegevensadministratie\Gegevens.sdf"[/COLOR][/B]

    Dim Conn1 As New OleDb.OleDbConnection(ConnString1)

    Private Sub btnProefToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnProefToevoegen.Click

        Conn1.Open()

        Dim SQL As String = "INSERT INTO Proeven (Proefnaam) VALUES ('Hallo')"
        Dim cmd As New OleDb.OleDbCommand(SQL, Conn1)
        cmd.ExecuteNonQuery()
        Conn1.Close()

    End Sub

End Class

Nu is mijn vraag hoe ik dit moet gaan oplossen als ik een straks een standalone versie heb gemaakt, en die draai op een andere computer. Dan is die bestandlocatie van de database niet meer hetzelfde en zal het programma hem dus niet kunnen vinden.

Hoe moet ik dat oplossen, zodat het wel allemaal goed blijft werken?

Ik hoop dat ik duidelijk genoeg ben geweest en hoop snel zelf duidelijkheid te krijgen :thumb:

Alvast bedankt,
Magistro
 
Laatst bewerkt:
Hallo,

Ik weet niet waarvoor je applicatie is bedoelt, maar als ik jou was, zou ik een Install-maker regelen, die een registerwaarde wegscrhijft. je Proggie leest die waarde en weet zo waar hij te vinden is. Ook kan ik me iets van App_data herinneren... Maar dat meot je even googlen :)
 
Gebruik de conection sting van uit je setting


makkelijk te controleren met
een button en een textbox

Code:
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Me.TextBox1.Text = My.Settings.ArtikelConnectionString()
    End Sub
 
Gebruik de conection sting van uit je setting

Hey Old Hippy,

Die werkt niet, ik krijg dan de volgende foutmelding:

Message="The file name is not valid. Check the file name for the database. [,,,File name,,]"

Mijn Connectionstring die jou code weergeeft is alvolgt:

Code:
Data Source=|DataDirectory|\Gegevens.sdf

Ik had dit eerst altijd erin staan, maar daarmee kreeg ik geen verbinding met de database, vandaar dat ik naar de volledige pad-naam ben overgestapt. Dat werkt goed voor je eigen computer, maar niet op een andere ;)
 
Huu Dat is gek al mijn databasis werken op die manier.
hoe wel ik altij een .mdf database gebruik en jij een .sdf ik weet niet of dit verschil maakt.
ook als ik ze op een andere pc zet???

zo ziet een connectie er bij mij uit
Code:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Mytest.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True
 
Laatst bewerkt:
Huu Dat is gek al mijn databasis werken op die manier.
hoe wel ik altij een .mdf database gebruik en jij een .sdf ik weet niet of dit verschil maakt.
ook als ik ze op een andere pc zet???

Wat voor pc werk je mee? Want ik werk nu met een 64bit en daar kreeg ik die .mdf databases niet mee aan de praat. Na wat google'en bleek dat de provider voor de access databases niet ondersteund werd op een 64bit pc, vandaar dat ik ben gaan proberen met een sdf file

edit: ik zal die van jou eens gaan proberen, want zo heb ik ze er nog niet bijgezet.
 
of probeer dit

Code:
 Dim connection As OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(Data Source=|DataDirectory|\Gegevens.sdf)
 
Win7 64 bit pc

als je met databasic werkt zal je je progje in visualbasic op x86 moeten zetten.
anders werkt het niet op een 64 bit
ik weet niet of dat in de express kan ik werk met visual basic 2008 standaard
wat je wel kan doen is de beta 2010 gebruiken hier kan je dat wel zolang deze gratis beschikbaar is.
 
of probeer dit

Code:
 Dim connection As OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(Data Source=|DataDirectory|\Gegevens.sdf)

Pakt ie ook niet. Ik ga het strax wel even op een andere computer proberen :thumb:
 
Win7 64 bit pc

als je met databasic werkt zal je je progje in visualbasic op x86 moeten zetten.
anders werkt het niet op een 64 bit
ik weet niet of dat in de express kan ik werk met visual basic 2008 standaard
wat je wel kan doen is de beta 2010 gebruiken hier kan je dat wel zolang deze gratis beschikbaar is.

Win7 64bit pc heb ik ook.

Ik heb in express mijn progje gisteren op x86 gezet, dus dat kan in express.

zou je me niet via pm een projectje van je kunnen sturen (als je die hebt zonder gevoelige info ;) ), of anders een stuk code waar je een connectie opzet in combinatie met een textboxje ofzo? Dan kan ik eens kijken hoe jij precies verbinding maakt met een database. Misschien dat er bij mij iets inschiet.

Ik heb me dit allemaal zelf aangeleerd, dus ik doe het een beetje op mijn eigen manier en misschien dat daar iets fout gaat :p
 
Laatst bewerkt:
Ok old Hippy of iemand anders die er verstand van heeft ;)

Ik heb nu de volgende code gemaakt:

Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Test.mdf")
        Dim cmd As System.Data.OleDb.OleDbCommand = conn.CreateCommand()
        cmd.CommandText = "INSERT INTO Proeven (Proefnaam) VALUES ('Hallo')"

        Try
            cmd.Connection.Open()
            cmd.ExecuteNonQuery()
        Finally
            cmd.Connection.Close()
        End Try

    End Sub

Nu geeft ie de volgende foutmelding:

Code:
Kan het bestand D:\Werk\Wouter\Visual Basic\Test\Test\bin\x86\Debug\Test.mdf niet vinden.

Zoals je ziet heeft ie het pad nu wel helemaal goed, ik snap eigenlijk ook niet waarom hij de db niet kan vinden. want als ik kijk op die locatie, staat de database test.mdf daar wel degelijk.

Enig idee hoe dit kan?
 
ik vraag mij af wat je wil.

als je de database hebt trek je de textboxen gewoon in je form.
en je kan werken.
set bij data Sources de grid op details of als je de gridview wild gebruiken.
sleep de grid in je form afhankelijk hoe je de DB hebt gemaakt.
kan je update dellen aanpassen ezv
 
ik vraag mij af wat je wil.

als je de database hebt trek je de textboxen gewoon in je form.
en je kan werken.
set bij data Sources de grid op details of als je de gridview wild gebruiken.
sleep de grid in je form afhankelijk hoe je de DB hebt gemaakt.
kan je update dellen aanpassen ezv

Ja dat heb ik een half uur geleden uitgevonden :D

Ik ga ermee aan de slag.

Heel erg bedankt voor je hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan