[VB] Een paar vragen over strings

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • DiviNe187
  • Registratie: Maart 2006
  • Laatst online: 29-08 17:37
Hoi!

Ik ben momenteel bezig in Visual Studio 08 om een programma te bouwen voor prive gebruik om MySQL databases te beheren.

Ik zit met een probleem. Ik ben goed bekend met PHP en wat ik hier gewend van ben is dat je in een string een variable kan gebruiken. Waar ik dus naar toe wil is het volgende:

Ik heb op een login scherm (die tevens vanuit de MySQL database de gegeven login gegevens bekijkt en checkt.) een textbox staan met een pre-set (of een recente gekozen, maar ik weet niet hoe helaas.) of ingevoerde value die tevens gesaved moet worden in een variable die ik in de volgende code wil invoeren:
code:
1
Dim sqlConn As New MySqlConnection("Database=test; Data Source=localhost; User Id='root'; Password=''")


In prencipe wil ik dus een dynamische database variable hebben die zelf ingevoerd kan worden, maar nu ben ik dus op zoek naar het antwoord hoe ik dit voor elkaar krijg. Zoals ik zei ik ben bekend met PHP en daar was het een simpele $variablenaam in de connectieline zelf, en dan een form+button en de $variablenaam defineren als een $_GET[variablenaam] value.

Voorbeeld:

code:
1
Dim sqlConn As New MySqlConnection("Database=$variablenaam; Data Source=localhost; User Id='root'; Password=''")


Is er iemand die mij kan uitleggen hoe ik dit voor elkaar krijg in combinatie met een invoer form?
En dan als 2e vraag, als dit mogelijk is, is er dan ook een manier om de $variablenaam mee te nemen naar een andere .vb in hetzelfde project? (loginform1 naar form1)

Ik hoop dat er iemand is die het een en ander duidelijker kan maken!

Bij voorbaat dank!

Mvg,

Kevin

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Visual Basic:
1
Dim sqlConn As New MySqlConnection("Database=" & MyDBName & "; Data Source..."


Echt basic...euh.. Basic ;)

En netter (IMHO):

Visual Basic:
1
Dim sqlConn As New MySqlConnection(String.Format("Database={0}; Data Source={1}; User Id={2}; Password={3}", MyDBName, MyHost, MyUserID, MyPassword))
DiviNe187 schreef op dinsdag 11 november 2008 @ 17:02:
En dan als 2e vraag, als dit mogelijk is, is er dan ook een manier om de $variablenaam mee te nemen naar een andere .vb in hetzelfde project? (loginform1 naar form1)
Uiteraard; maar ben je uberhaupt thuis in OOP? Of rommel je maar wat aan met VB? Ik zou je graag als tip willen geven je even te verdiepen in de basics van VB want dit is echt les 1 of 2 basisstof. Je kunt het doorgeven middels een property, middels een constructor, middels het aanspreken van het parent form etc. etc... Hell, het kan via een global :X

[ Voor 96% gewijzigd door RobIII op 11-11-2008 17:09 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • DiviNe187
  • Registratie: Maart 2006
  • Laatst online: 29-08 17:37
Zoals ik al vermeld had ben ik ook een beginner :o :+
Ik ben inderdaad wat aan het rommelen nog maar het is wel iets waar ik me in ga verdiepen.
Ik ga het zeker eens proberen het lijkt redelijk op de php versie van bijv. een losse GET zonder variable dus ik denk dat dat wel goed komt. Is er ook een manier dan om de variable mee te nemen naar een andere .vb file in het project (de volgende pagina) of moet ie dan weer defined worden?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
DiviNe187 schreef op dinsdag 11 november 2008 @ 17:10:
Is er ook een manier dan om de string mee te nemen naar een andere .vb file in het project (de volgende pagina) of moet ie dan weer defined worden?
RobIII schreef op dinsdag 11 november 2008 @ 17:03:
Uiteraard; maar ben je uberhaupt thuis in OOP? Of rommel je maar wat aan met VB? Ik zou je graag als tip willen geven je even te verdiepen in de basics van VB want dit is echt les 1 of 2 basisstof. Je kunt het doorgeven middels een property, middels een constructor, middels het aanspreken van het parent form etc. etc... Hell, het kan via een global :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • DiviNe187
  • Registratie: Maart 2006
  • Laatst online: 29-08 17:37
Heb het even opgezocht over de globals en dat was presies wat ik zocht _/-\o_

Mijn nieuwe hobby is geboren ik dank u zeer :+ :P

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
DiviNe187 schreef op dinsdag 11 november 2008 @ 17:14:
[...]

Heb het even opgezocht over de globals en dat was presies wat ik zocht _/-\o_
Zoek nog even verder... ik zette die :X niet voor niks. Globals zijn wel het laatste wat je wil gebruiken...

Ach, waar maak ik me ook druk om...

[ Voor 5% gewijzigd door RobIII op 11-11-2008 17:15 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • DiviNe187
  • Registratie: Maart 2006
  • Laatst online: 29-08 17:37
RobIII schreef op dinsdag 11 november 2008 @ 17:15:
[...]

Zoek nog even verder... ik zette die :X niet voor niks. Globals zijn wel het laatste wat je wil gebruiken...

Ach, waar maak ik me ook druk om...
Haha ja ik vatte em al, heb ook al onderzoek naar de rest gedaan maar het feit dat je de globals buiten een sub/function kan zetten maak het nog geschikter voor mijn doel, dus alsnog bij deze bedankt ;)

Acties:
  • 0 Henk 'm!

  • Data-base
  • Registratie: Maart 2007
  • Laatst online: 07-09 10:33
Ik zou je eens aanraden om wat vb webapplicaties door te kijken. Het paradigma wat bij vb wordt gebruikt is totaaaaal anders dan bij php en de overstap is dan vaak ook even wennen. En idd geen globals gebruiken! Gebruik klassen of structs om je data in bij te houden en geef deze door als functie parameter.

Acties:
  • 0 Henk 'm!

  • DiviNe187
  • Registratie: Maart 2006
  • Laatst online: 29-08 17:37
Ik heb trouwens nog wel een extra vraagje nu ik weer een stuk verder ben, ik gebruik momenteel:
code:
1
 item = r.GetValue(0).ToString()
om een row uit een database te halen.. Is er ook een manier die alles in 1 keer pakt en in een array gooit?
code:
1
item = r.GetValue(all1one).ToArray()
Ik heb hier naar gezocht in tutorials maar zelfs het werkend krijgen van het bekijken van data vanuit een Mysql row was moeilijk. Het scheen allemaal te kunnen via een datagrid maar dit is totaal niet gelukt. Het is me uiteindelijk gelukt door:
code:
1
2
3
4
         While r.Read()
            item = r.GetValue(0).ToString()
            ComboBox1.Items.Add(item)
        End While

Werkt uitstekend!. Al moet ik dan dus per row een item adden aan de combobox en elke nieuwe item die is toegevoegd in de database ook in de app een nieuwe row zetten, dat werkt dus niet.

Is er een manier?

(Nogmaals, datagrid view kreeg ik niet werkend, ik heb geprobeerd om de data erin te krijgen maar krijg dit voor geen enkele manier gedaan. Zelfs niet als ik een pre-coded script neerzet van een ander krijg ik niet dezelfde resultaten, de dropdown list blijft dan simpelweg leeg net zoals de datagrid.. ik zou dit dus even verder moeten bekijken)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
DiviNe187 schreef op dinsdag 11 november 2008 @ 19:50:
ik zou dit dus even verder moeten bekijken
Doe dat eerst eens en begin gewoon bij het begin. Het ontbeert je duidelijk aan een basiskennis over VB en het .Net framework; schaaf dat eerst eens bij. We zijn geen hou-mijn-handje-eens-vast forum. Er zijn voldoende tutorials te vinden en anders is er altijd nog de almighty MSDN.

Het hele OO concept ontgaat je zo te zien nog aardig; dat is toch wel verrekte handig als je met zaken als VB.Net aan de slag wil gaan; zonder kom je niet ver (en dat blijkt nu dus ook). Don't get me wrong; we hebben het allemaal ooit moeten leren en het is echt geen schande ofzo; maar je vragen zijn wel van een erg basic niveau en we verwachten hier toch wel iets meer.

[ Voor 30% gewijzigd door RobIII op 11-11-2008 19:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • DiviNe187
  • Registratie: Maart 2006
  • Laatst online: 29-08 17:37
DiviNe187 schreef op dinsdag 11 november 2008 @ 19:50:
(Nogmaals, datagrid view kreeg ik niet werkend, ik heb geprobeerd om de data erin te krijgen maar krijg dit voor geen enkele manier gedaan. Zelfs niet als ik een pre-coded script neerzet van een ander krijg ik niet dezelfde resultaten, de dropdown list blijft dan simpelweg leeg net zoals de datagrid.. ik zou dit dus even verder moeten bekijken)
Hier moet ik nog wel op zeggen dat ik uiteindelijk wel voor elkaar heb gekregen dat er informatie komt te staan, allemaal settings met checkboxes etc komen, maar als ik de mysql.datareader source aangeef dan blijft de datagrid simpelweg leeg. Ook als ik alvast een row maak in de datagrid met dezelfde naamwaarde als de tabelinvoer laat hij niks zien.

Acties:
  • 0 Henk 'm!

  • Data-base
  • Registratie: Maart 2007
  • Laatst online: 07-09 10:33
Wat RobIII zegt, .NET kennis fixen.

Verder, haal geen value op met een nummer, die beestjes hebben een naam!

Wat je vraag betreft over een complete rij, zie de property ItemArray

http://msdn.microsoft.com...ta.datarow.itemarray.aspx

En, bookmark MSDN, ga je hard nodig hebben.

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

DiviNe187 schreef op dinsdag 11 november 2008 @ 19:50:
Ik heb trouwens nog wel een extra vraagje nu ik weer een stuk verder ben, ik gebruik momenteel:
code:
1
 item = r.GetValue(0).ToString()
om een row uit een database te halen.. Is er ook een manier die alles in 1 keer pakt en in een array gooit?
code:
1
item = r.GetValue(all1one).ToArray()
Ik heb hier naar gezocht in tutorials maar zelfs het werkend krijgen van het bekijken van data vanuit een Mysql row was moeilijk. Het scheen allemaal te kunnen via een datagrid maar dit is totaal niet gelukt. Het is me uiteindelijk gelukt door:
code:
1
2
3
4
         While r.Read()
            item = r.GetValue(0).ToString()
            ComboBox1.Items.Add(item)
        End While

Werkt uitstekend!. Al moet ik dan dus per row een item adden aan de combobox en elke nieuwe item die is toegevoegd in de database ook in de app een nieuwe row zetten, dat werkt dus niet.

Is er een manier?

(Nogmaals, datagrid view kreeg ik niet werkend, ik heb geprobeerd om de data erin te krijgen maar krijg dit voor geen enkele manier gedaan. Zelfs niet als ik een pre-coded script neerzet van een ander krijg ik niet dezelfde resultaten, de dropdown list blijft dan simpelweg leeg net zoals de datagrid.. ik zou dit dus even verder moeten bekijken)
Er even van uit gaan dat je een SQLDataAdapter hebt gebruikt om het resultaat om te zetten in een DataTable (System.Data.DataTable), zou je als volgt te werk kunnen gaan:

code:
1
2
3
4
5
6
7
8
9
10
11
If not Isnothing(DT) andalso DT.Rows.Count > 0 THen
for each DR as datarow in DT.Rows
Dim Val1 as object = DT.Item(0)
DIm Val2 as object = DT.Item("Val2")
Dim Val3 as integer = directcast(DT.item("val3"),Integer) ' Alleen doen als je zeker weet dat het een integer is en niet DbNull kan zijn
Dim HasValue4 as boolean = IsDbNull(DT.Item(4))
'etc, you get the idea.
next
else
' geen results
end if


Ow ja; voordat ik het vergeet: dit is hoe je te werk zou gaan met een MSSQL Datasource. Heb al een paar jaar geen MySQL geprobeerd met Visual Studio, dus ik weet niet in hoeverre de huidige MySQL support van 3rd party sources is en in welke vorm deze overeen komt met de System.Data.SqlClient namespace.

Als je doel is om .NET te lezen zou ik adviseren om MSSQL Express te installen en daar mee te werken. Is je doel om een manager te maken voor je MySQL database, dan zou ik kijken of je het met een andere taal kan doen waarbij wellicht native ondersteuning voor is. Dit omdat een nieuwe taal leren (.NET talen zijn een wereld van verschil met PHP, declerative vs imperative) en dan ook nog een project waar het allerminst makkelijk gaat worden om de juiste info te vinden is erg ambiteus.

Dus, om het even samen te vatten: kijk eerst wat je belangrijker vind, het resultaat of het leren en neem aan de hand daarvan een beslissing hoe verder te gaan.

[ Voor 19% gewijzigd door CMG op 12-11-2008 01:28 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Thanks voor het voorkauwen;
Give a man a fish and feed him for a day, teach a man how to fish and teach him for a lifetime...
CMG schreef op woensdag 12 november 2008 @ 01:24:
Als je doel is om .NET te lezen zou ik adviseren om MSSQL Express te installen en daar mee te werken.

Is je doel om een manager te maken voor je MySQL database, dan zou ik kijken of je het met een andere taal kan doen waarbij wellicht native ondersteuning voor is.
DiviNe187 schreef op dinsdag 11 november 2008 @ 17:02:
Ik ben momenteel bezig in Visual Studio 08 om een programma te bouwen voor prive gebruik om MySQL databases te beheren.
Verder vind ik het nogal kort door de bocht om te hinten naar andere talen omdat er geen native ondersteuning zou zijn in een gekozen taal. So what als 't niet native is? En daarbij, wat versta jij onder native? En moet dat dan een reden zijn om meteen een complete taal te laten varen?

[ Voor 13% gewijzigd door RobIII op 12-11-2008 01:56 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Ik heb hem enkel de diverse manieren gegeven waarom je data kan opvragen, abstracte code die ik uit het losse handje geschreven heb en als doel heeft om verder te experimenteren/op msdn verder te lezen.
RobIII schreef op woensdag 12 november 2008 @ 01:54:
Verder vind ik het nogal kort door de bocht om te hinten naar andere talen omdat er geen native ondersteuning zou zijn in een gekozen taal. So what als 't niet native is? En daarbij, wat versta jij onder native? En moet dat dan een reden zijn om meteen een complete taal te laten varen?
Dat is ook niet wat ik zeg. Aan zijn post te zien heeft hij weinig tot geen ervaring met wat hij wil gaan doen. Dat is niet erg, maar naar mijn mening niet de beste manier om tot het doel te komen. Daarnaast was het niet duidelijk wat zijn doel was. Afhankelijk van zijn doel heb ik hem twee suggesties gegeven die het hem makkelijker maken om dingen op te pakken en tot resultaat te komen; iets dat hem vervolgens zal stimuleren om verder te gaan en misschien de andere optie ook na te gaan.

NKCSS - Projects - YouTube

Pagina: 1