Datebank abfrage Fehler

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von exo72.

    Datebank abfrage Fehler

    Hallo.
    Möchte in einer textbox eingetragen kunden id abfragen soll in der gleichen form erbenis ausgeben.
    also abfrage in der textbox1 button klicken ergebnis in den jeweiligen textboxe ausgeben z.B textbox 2
    bekomme aber eien Fehlermeldung "
    Für minedestens einen erforderlichen wert wurde kein Parameter angegeben"

    Fehlerausgabe in Zeile :"reader = cmd.ExecuteReader()
    "

    Quellcode

    1. Dim con As New OleDbConnection
    2. Dim cmd As New OleDbCommand
    3. Dim reader As OleDbDataReader
    4. 'objExcel = CreateObject("Excel.Application")
    5. 'objWorkbook = objExcel.Workbooks.Open("C:\Users\Ultimate\Desktop\test.xlsx")
    6. 'objExcel.Cells(1, 1).Value = "Test value7"
    7. 'objWorkbook.PrintOut()
    8. 'objExcel.Save()
    9. 'objExcel.Quit()
    10. con.ConnectionString =
    11. "Provider=Microsoft.ACE.OLEDB.12.0;" &
    12. "Data Source=C:\Users\Ultimate\Documents\lwv\lager.accdb"
    13. cmd.Connection = con
    14. cmd.CommandText = "select * from warenausgang WHERE LS-Nummer=TextBox1.Value "
    15. con.Open()
    16. reader = cmd.ExecuteReader()
    17. Do While reader.Read()
    18. TextBox2 = reader("LS-Nummer")
    19. Loop
    Ahoi,

    lass dir doch mal dein Commandtext ausgeben kopier ihn und probiere die Select mal direkt in der Datenbank abzufragen.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Ich kann mir nicht vorstellen, dass TextBox1.Value da so reingehört. (Wenn das schon der Wert von TextBox1.Value aber so steht ja im Command wirklich TextBox1.Value drin)
    Sieh dir mal an was es mit Db-Parametern auf sich hat [VB.NET] Tipp & Trick: DbParameter

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Und ich dachte mir ich lass es ihn mal selbst erkennen, nagut.

    Textbox1.Value müsste vom Interpreter so erkannt werden:
    Textbox1 ist der Alias oder Name einer Tabelle in deiner Datenbank.
    Value ist die Spalte, welche sich in dieser angesprochenen Tabelle befindet.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    ?????????

    fichz schrieb:

    ...aber so steht ja im Command wirklich TextBox1.Value drin


    Du willst doch sicher nur den wert, welcher in deiner Textbox steht in die Table eintragen oder ?
    Wenn du den Wert eines Objekts in einen String integrieren möchtest, darfst du nicht den Namen des Objekts als String mit reinschreiben.

    Außerdem werden Text-werte mit ' ' in die DB geschrieben.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    nein also nochmal erklärt:
    Ich habe eine acess datenbank.
    dort sind artikel nummer eds kunden drin.
    ich möchte jetzt zb eine abfrage starten mit der Liferscheinnummer
    die sich LS-Nummer nennt
    und zwar soll die abfrage über eine textbox starten in der ich die Liferscheinnummer eingebe Textbox1
    soll datenbank abfrage und mri daten listen zb. ist verschickt datum die natürlich auch in der datenbank erfasst sind.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exo72“ ()

    das mag sein, versuch es trotzdem mal so

    Visual Basic-Quellcode

    1. cmd.CommandText = "select * from warenausgang WHERE LS-Nummer=" + TextBox1.Text

    oder so

    Visual Basic-Quellcode

    1. cmd.CommandText = "select * from warenausgang WHERE LS-Nummer='" + TextBox1.Text + "'"
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    dann würde mich dein commandtext wirklich mal zur laufzeit interessieren, gib ihn doch einfach mal aus
    wenn es richtig kommt, dann nimm den commandtext und setz ihn direkt in der DB ab
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Quellcode

    1. Imports System.Data.OleDb
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    6. Dim oConn As New OleDbConnection
    7. Dim oComm As New OleDbCommand
    8. Dim oData As OleDbDataReader
    9. oConn.ConnectionString =
    10. "Provider=Microsoft.ACE.OLEDB.12.0;" &
    11. "Data Source=C:\Users\Ultimate\Documents\lwv\lager.accdb"
    12. oConn.Open()
    13. oComm.CommandText = "select from warenausgang where LS-Nummer='" & TextBox1.Text & "'"
    14. oComm.Connection = oConn
    15. oData = oComm.ExecuteReader()
    16. Do While oData.Read()
    17. TextBox2.Text = oData("Lagerplatz")
    18. Loop
    19. End Sub
    20. End Class


    das ist der ganze umgeänderte command text.
    habe ihn umgeänder weil ich dachte cileicht habe ich was falsch gemacht
    Und was kommt dabei raus ? Immer noch der gleiche Fehler ?
    Hast du dir den commandtext nun mal zur laufzeit ausgegeben ?
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    sind das die Quelltetx informationen:

    Quelle für "C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb" wird gesucht. Checksum: MD5 {b9 3b b8 c5 b5 32 43 88 b7 a4 46 21 be 5b 99 95}
    Es wird ermittelt, ob die Prüfsumme für folgende Speicherorte übereinstimmt:
    1: C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb Checksum: MD5 {ef 80 cb e8 6f eb a8 58 e1 48 61 3c 96 c8 41 38} Prüfsumme stimmt nicht überein.
    Datei "C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb" ist vorhanden.
    "C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb" wird in Skriptdokumenten gesucht...
    Es wird ermittelt, ob die Prüfsumme für folgende Speicherorte übereinstimmt:
    1: C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb Checksum: MD5 {ef 80 cb e8 6f eb a8 58 e1 48 61 3c 96 c8 41 38} Prüfsumme stimmt nicht überein.
    "C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb" wird in Projekten gesucht.
    Die Datei wurde nicht in einem Projekt gefunden.
    In Verzeichnis "E:\Programme Windows\VS Basic\VC\crt\src\" wird gesucht...
    In Verzeichnis "E:\Programme Windows\VS Basic\VC\crt\src\vccorlib\" wird gesucht...
    In Verzeichnis "E:\Programme Windows\VS Basic\VC\atlmfc\src\mfc\" wird gesucht...
    In Verzeichnis "E:\Programme Windows\VS Basic\VC\atlmfc\src\atl\" wird gesucht...
    In Verzeichnis "E:\Programme Windows\VS Basic\VC\atlmfc\include" wird gesucht...
    In Verzeichnis "C:\" wird gesucht...
    In den Einstellungen zum Debuggen von Quelldateien für die aktive Lösung ist angegeben, dass der Benutzer nicht zum Suchen der Datei aufgefordert wird: C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb.
    Die Quelldatei "C:\Users\Ultimate\Documents\Visual Studio 2012\Projects\lager5\lager5\Form1.vb" wurde nicht gefunden.
    mach einfach mal das hier

    Visual Basic-Quellcode

    1. TextBox2.Text = oComm.CommandText

    und dann kommentier das einfach mal aus

    Visual Basic-Quellcode

    1. oComm.Connection = oConn
    2. oData = oComm.ExecuteReader()
    3. Do While oData.Read()
    4. TextBox2.Text = oData("Lagerplatz")
    5. Loop

    führe dein Programm aus und poste mal bitte was in Textbox2 steht

    übrigens sehe ich gerade, dass du deine connection nicht schließt
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    steht der Stern wirklich nicht mehr drin ?

    Visual Basic-Quellcode

    1. oComm.CommandText = "select from warenausgang where LS-Nummer='" & TextBox1.Text & "'"
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    und LS-Nummer ist Spalte deiner Tabelle warenausgang ?
    kommt denn eigentlich noch immer der gleiche fehler ?
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    mh dann fällt mir das Problem noch nicht ins auge

    setz mal bitte um den execute ready ein try catch und lass dir mal den stacktrace der exception ausgeben

    also

    Visual Basic-Quellcode

    1. try
    2. oData = oComm.ExecuteReader()
    3. catch(ex as exception)
    4. messagebox.show(ex.stacktrace())


    irgendwie so sah das ja in vb aus
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de