Nieprawidłowe data type w SQL SERVER 2008

0

Witam,

Jestem kompletnym noobem w C# i SQL, ale udało mi się stworzyć aplikację w Visual Studio 2010. Zrobiłem sobie tam taki formularz, który wpisuje dane do tabeli w sql server 2008. I kiedy próbuję wpisać takie rzeczy jak KOD POCZTOWY, IMIĘ, NUMER TELEFONU czy WIEK to wyskakuje mi błąd. Nie wiem, może zły data type ustawiłem dla tych pól. Możecie pomóc? W załączniku będzie screen.

0

Pokaż całą treść zapytania plus wrzuć schemat bazy.

0
Patryk27 napisał(a):

Pokaż całą treść zapytania plus wrzuć schemat bazy.

Tutaj jest kod: https://pastebin.com/D9ZB7wjc

0

Popatrz na bazę danych - nigdzie nie masz "allow nulls", dlatego jeśli chcesz wstawić instertem jakiekolwiek dane, które nie zapełniają wszystkich pól rekordu (choś jedno jest puste) to masz błąd. Włącz na początek "allow nulls" w bazie dla pól i sprawdź działanie kodu (pobieżnie rzuciłem okiem i zdaje się być ok ale nie znaczy to, że dobrze).

0

Zamiast tej nieczytelnej, błędogennej i bardzo niebezpiecznej konkatenacji zapytania:

   SqlCommand sc = new SqlCommand("insert into Klienci values('"+txtName.Text+"','"+txtAdres.Text+"','"+txtMiasto.Text+"','"+txtKodpocztowy.Text+"','"+txtWiek.Text+"','"+cmbWiek.Text+"','"+txtTelefon.Text + "','"+txtMail.Text+"','"+txtCena.Text+"','"+txtStyl.Text+"','"+txtInw.Text+"','"+txtChar.Text+"');", con);

użyj parametryzowanego zapytania: https://www.dotnetperls.com/sqlparameter

0
  1. Wstawiasz 12 kolumn, a w tabeli masz zdefiniowane 11
  2. Wiek oraz telefon wstawiasz jako tekst, a masz zdefiniowane kolumny jako liczba całkowita
  3. Telefon raczej powinien być zdefiniowany jako tekst a nie liczba
  4. Przy insercie podawaj kolumny (kolejność) do jakich wstawiasz dane
  5. Używaj parametrów

1 użytkowników online, w tym zalogowanych: 0, gości: 1