Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C# - Łączenie z SQL przez WCF

thority 14 Sty 2015 08:09 534 3
  • #1 14 Sty 2015 08:09
    thority
    Poziom 8  

    Witam
    Chcę stworzyć swoją pierwszą aplikację w C# łączącą się z lokalną bazą danych i umożliwiającą edytowanie danych z bazy z poziomu kontrolek.


    W bazie SQL jest 5 kolumn z UserId jako primary.

    Kod z C# Service1.cs:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Kod z IService1.cs

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Kiedy jednak odpalam WCF i robię Invoke to pojawia się exception w InsertUserDetaisl() o treści:
    The parameterized query '(@UserID int,@UserName nvarchar(4000),@Password nvarchar(4000),@' expects the parameter '@UserName', which was not supplied.
    Oczywiście potem nie mogę właściwie edytować niczego w aplikacji korzystającej z tego WCF (wewnętrzny błąd).

    Wszystkie inne Invoke wykonują się poprawnie.

    0 3
  • #2 14 Sty 2015 11:40
    marcinj12
    Poziom 40  

    Sprawdź debugerem, czy nie przekazujesz przypadkiem parametru userInfo.UserName jako null albo pusty string.

    0
  • #3 14 Sty 2015 11:43
    wiesniak
    Poziom 31  

    Pusty string przejdzie - MS SQL Server to nie Oracle ;P Natomiast przy null jest dokładnie taki wysyp jak wklejony. Skopiowałem podany kod i sam w sobie jest OK - podanie UserName kończy insert sukcesem.

    0
  • #4 14 Sty 2015 18:18
    thority
    Poziom 8  

    Dodanie obsługi wyjątku pomogło, także zmiana insert_status na on z poziomu C#.

    Mam teraz jeszcze jedno pytanie, za każdym razem jak dodaję nowego usera to dodany on zostaje z UserId równym 0, a chciałbym, by ta wartość była dodawana do bazy na podstawie tego, co wpiszę z poziomu textboxa. Tu jest kod Formsowy

    Kod: csharp
    Zaloguj się, aby zobaczyć kod




    EDIT: Poradziłem sobie, dzięki wszystkim za dobre pomysły.

    0