• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C# WCF Parametry

Object Storage Arubacloud
0 głosów
360 wizyt
pytanie zadane 30 listopada 2017 w C i C++ przez ayo1001 Obywatel (1,890 p.)

Witam,

Problem jest następujący:

Przy kliknięciu "Dodaj" wyrzuca mi błąd throw

System.Data.SqlClient.SqlException: „Column name or number of supplied values does not match table definition.”

Co chce zrobić?

  • wrzucić Nazwę użytkownika, do tabeli. Wyświetlić ją za pomocą: displayNazwaUzytkownika w "Przez"
  • Wyświetlić aktualną datę (to akurat wiem jak zrobić - za pomocą trigera)
  • Wyświetlić datę edycji
  • Jaki dać typ danych przy dacie?

Jak rozwiązać powyższy problem?

Formularz

        public Formularz(string NazwaUzytkownika)
        {
            InitializeComponent();
            displayNazwaUzytkownika.Text = NazwaUzytkownika;
        }

        private void btnDodaj_Click(object sender, EventArgs e)
        {
            {
                kNazwa k = new kNazwa();
                k.OsobaId = 0;
                k.Imie = Imie.Text;
                k.Nazwisko = Nazwisko.Text;

                Service1Client service = new Service1Client();

                if (service.Dodaj(k) == 1)
                {
                    MessageBox.Show("Pomyślnie dodano osobę.");
                }
            }
            ...
        }

Service1

        public int Dodaj(kNazwa k)
        {
            try
            {
                comm.CommandText = "INSERT INTO tbl_NazwaTabeli VALUES(@Imie, @Nazwisko)";
                comm.Parameters.AddWithValue("Imie", k.Imie);
                comm.Parameters.AddWithValue("Nazwisko", k.Nazwisko);
                comm.Parameters.AddWithValue("DataUtworzenia", k.DataUtworzenia);
                comm.Parameters.AddWithValue("DataModyfikacji", k.DataModyfikacji);
                comm.Parameters.AddWithValue("Przez", k.Przez);
                comm.CommandType = CommandType.Text;
                conn.Open();

                return comm.ExecuteNonQuery();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }

|Service1

    [DataContract]
    public class kNazwa
    {
        [DataMember]
        public int OsobaId { get; set; }

        [DataMember]
        public string Imie { get; set; }

        [DataMember]
        public string Nazwisko { get; set; }

        [DataMember]
        public string DataUtworzenia { get; set; }

        [DataMember]
        public string DataModyfikacji { get; set; }

        [DataMember]
        public string Przez { get; set; }
    }

tbl_Nazwa - T-SQL

CREATE TABLE [dbo].[tbl_Nazwa] (
    [OsobaId] INT          IDENTITY (1, 1) NOT NULL,
    [Imie]   VARCHAR (50) NULL,
    [Nazwisko]  VARCHAR (50) NULL,
	[DataUtworzenia] DATETIME NULL, 
    [DataModyfikacji] DATETIME NULL, 
    [Przez] VARCHAR(50) NULL, 
    CONSTRAINT [PK_tbl_Nazwa] PRIMARY KEY CLUSTERED ([OsobaId] ASC)
);

1 odpowiedź

0 głosów
odpowiedź 30 listopada 2017 przez Crash182 Gaduła (3,600 p.)
edycja 30 listopada 2017 przez Crash182
Cześć,

ja tutaj widzę sporo problemow...

1. INSERT INTO tbl_NazwaTabeli,  a z Twojego SQLa wynika ze tabela nazywa się [tbl_Nazwa]

2. Dodajesz 5 parametrów a potem twoja komenda kończy się tak: VALUES(@Imie, @Nazwisko)

3. Dlaczego data jako string a nie Datetime?

4. Poczytaj tez o ozywaniu specjalnego słowa "using" - jest dość przydatne gdy np łączysz się z baza danych

Pozdrawiam
komentarz 30 listopada 2017 przez ayo1001 Obywatel (1,890 p.)
Już wszystkie problemy rozwiązałem.

Podobne pytania

0 głosów
0 odpowiedzi 415 wizyt
pytanie zadane 30 sierpnia 2019 w C# przez Krst0 Obywatel (1,340 p.)
0 głosów
0 odpowiedzi 632 wizyt
pytanie zadane 28 grudnia 2015 w C# przez Surykat Stary wyjadacz (14,780 p.)
0 głosów
0 odpowiedzi 148 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...