logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] VB.Net + MS SQL + datagridview zapisanie danych w bazie

pawelus222 27 Lut 2020 14:44 330 7
REKLAMA
  • #1 18497119
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Witam.
    Mam problem z zapisanie danych do bazy MS SQL.
    Napisałem na stępujący kod:
    
    Dim command1 As New SqlCommand("INSERT INTO CELE_PRZEJAZDOW (NR_KOD, KIERUNEK, CEL, FIRMA, RODZAJ) VALUES (@NR_KOD, @KIERUNEK, @CEL, @FIRMA, @RODZAJ)", Con)
            Con.Open() 
            command1.Parameters.Add("@NR_KOD", SqlDbType.VarChar).Value = kodTxt.Text
            command1.Parameters.Add("@KIERUNEK", SqlDbType.VarChar).Value = kierunekTxt.Text
            command1.Parameters.Add("@CEL", SqlDbType.VarChar).Value = celTxt.Text
            command1.Parameters.Add("@FIRMA", SqlDbType.VarChar).Value = firmaTxt.Text
            command1.Parameters.Add("@RODZAJ", SqlDbType.VarChar).Value = rodzajTxt
            command1.ExecuteNonQuery()
            Con.Close() 
    

    kodTxt.Text, kierunekTxt.Text, celTxt.Text, firmaTxt.Text rodzajTxt.Text wszystkie te pola są to TextBoxy i w nich podaję dane, które chcę wstawić do bazy MS SQL. W bazie danych wszystkie kolumny w tej tabeli mają danych kolumn varchar(50). Przy próbie wykonania powyższego kodu pokazuje mi się następujący komunikat w linijce command1.ExecuteNonQuery():
    VB.Net + MS SQL + datagridview zapisanie danych w bazie

    Proszę o pomoc.
  • REKLAMA
  • #2 18497199
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1461
    Naprawdę nie widzisz?
  • REKLAMA
  • #3 18497220
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Od rana siedzę przy komputerze. Niestety zmieniałem ten kod i już nie wiem co tu jest nie tak. Mam jeszcze inny kod ale ten moim zdaniem jest krótszy i bardziej przejrzysty. Pomoże ktoś?
  • REKLAMA
  • #4 18498114
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1461
    Komunikat jest bardzo wyraźny.
    Karmisz go całym TextBox-em, gdzie oczekuje stringu. Gdzie używasz gołego TextBox-a ?

    Nauka analizowania jest (uważam) cenniejsza niż wybłaganie doraźnej poprawki (co jak widać często robisz)
  • #5 18498543
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Czyli poniższe rozwiązanie powinno załatwić sprawę (jest to oczywiście wycinek kodu):
    
    command1.Parameters.Add("@NR_KOD", SqlDbType.VarChar).Value = kodTxt.Text.ToString
    
  • #6 18498973
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1461
    pawelus222 napisał:
    Czyli poniższe rozwiązanie powinno załatwić sprawę (jest to oczywiście wycinek kodu):
    
    command1.Parameters.Add("@NR_KOD", SqlDbType.VarChar).Value = kodTxt.Text.ToString
    


    Text już jest string, nie ma sensu ToString

    Po prostu strzelasz, a nie analizujesz. Zapewniam Cię, to jest BARDZO PROSTE.
  • #7 18520118
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    CO jest w tym kodzie zatem nie tak?

    Dodano po 15 [minuty]:

    Tak ma kod wyglądać?
    
    command1.Parameters("@NR_KOD").Value = kodTxt.Text
    
  • REKLAMA
  • #8 18849830
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Wszystko ok

Podsumowanie tematu

✨ Użytkownik ma problem z zapisaniem danych do bazy MS SQL przy użyciu VB.Net i DataGridView. W kodzie, który zamieścił, pojawia się błąd związany z przekazywaniem wartości z TextBoxów do parametrów SQL. Odpowiedzi wskazują, że użytkownik nieprawidłowo używa TextBoxa jako wartości, co prowadzi do błędów. Sugerowane poprawki obejmują upewnienie się, że wartości są przekazywane jako stringi, a także eliminację niepotrzebnego wywołania metody ToString, ponieważ TextBox.Text już zwraca string. Użytkownik potwierdza, że po wprowadzeniu poprawek kod działa poprawnie.
Wygenerowane przez model językowy.
REKLAMA