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.
Moi jokke568!
jos HloNro on määritetty tietokannassa luvuksi niin ota hipsut pois...
"SELECT * FROM Henkilosto WHERE HloNro = " + HloNroTextBox.Text
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
Moi taas jokke568!
Et sitten viitsinyt kokeilla eli kyllä passaa viitata datataulun sarakkeisiin sarakeiden nimillä stringinä...
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()
Aihe on jo aika vanha, joten et voi enää vastata siihen.