Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL, VB.NET: VB2010: Tyyppivirhe ehtomäärityksessä

jokke568 [24.01.2013 22:35:49]

#

Missä vika?

Yritän hakea Henkilosto -taulusta HloNro :n perusteella Etu- ja Sukunimen HloNimi.text kenttään.

Ilmoittaa "Tyyppivirhe ehtomäärityksessä.", kohdassa TietoAdapter.Fill(TietoDataset", "henkilosto")

If conn.State = ConnectionState.Open Then

         Dim query As String = "SELECT * FROM Henkilosto WHERE HloNro = '" + HloNroTextBox.Text + "'"
         TietoAdapter = New OleDbDataAdapter(query, connstr)
         TietoDataSet = New DataSet
         TietoAdapter.Fill(TietoDataSet, "Henkilosto")

         If TietoDataSet.Tables("Henkilosto").Rows.Count > 0 Then

             HloNimi.Text = TietoDataSet.Tables("Henkilosto").Columns.Contains("Sukunimi").ToString & " " & TietoDataSet.Tables("Henkilosto").Columns.Contains("Etunimi").ToString


         End If
     End If

Missä kohtaa meni väärin? Taulujen ja rivien nimet ovat oikein kirjoitettu.

neau33 [24.01.2013 22:56:10]

#

Moi jokke568!

jos HloNro on määritetty tietokannassa luvuksi niin ota hipsut pois...

"SELECT * FROM Henkilosto WHERE HloNro = " + HloNroTextBox.Text

jokke568 [24.01.2013 23:07:46]

#

Kiitos taas!!

Kyllä oli taas pienestä kiinni.

Rivi joka siirtää sukunimen ja etunimen HloNimi.Text kenttään antaa arvoiksi True False.

Korvasin rivin aikaisemmin opastamallasi tavalla

HloNimi.Text = TietoDataSet.Tables("Henkilosto").Rows(0)(8).ToString & " " & TietoDataSet.Tables("Henkilosto").Rows(0)(9).ToString

Ja toimii, mutta onko mahdollista käyttää jotain Columns :hin viittaavaa, kuten "Etunimi", "Sukunimi", jolloin ei vaikuttaisi jos tietokantaan lisää sarakkeita edellä mainittujen eteen tai väliin. Vai pitääkö vain huolehtia, että jos sattuu lisäämään sarakkeita niin sitten muutta Rows(0)(x) numeroita oikeiksi..

Kiitos

neau33 [25.01.2013 00:18:26]

#

Moi taas jokke568!

Et sitten viitsinyt kokeilla eli kyllä passaa viitata datataulun sarakkeisiin sarakeiden nimillä stringinä...

Grez [25.01.2013 00:25:14]

#

No ensinnäkin voit laittaa jo tuohon kyselyyn mitä sarakkeita haluat:

SELECT Etunimi, Sukunimi FROM Henkilosto ...

Tästä on hyötyä ettei haeta turhaa dataa (kaikkia sarakkeita) ja saat suoraan kyselystä virheen jos joku haluamasi sarake puuttuu.

Toisekseen ihan vaan:

TietoDataSet.Tables("Henkilosto").Rows(0)("Etunimi").ToString()

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta