procedura zwracająca kilka wartości do combo

0

Witam.
Mam taki problem mianowicie

Mam procedurę (nie wiem czy dobrze napisaną i chyba tu leży problem) z variable table

ALTER PROCEDURE combo1
@imie varchar(15) = Null Output

Create @temp Table
(
@imie
)
AS

Begin
	Select imie Into @temp (@imie) From klient where id = 1 and id = 3
End

Podpinam ją do comboboxa w ten sposób comboBox1.Items.Add(cmd.Parameters["@imie"].Value.ToString());
Chciałbym aby w comboboxsie znalazły się wartości które spełniają zadany warunek. Są to dwie wartości
dlatego zastosowałem variable table (tylko to mi przyszło do głowy).
Konkludując jeśli select zwraca jedną wartość do zmiennej wszystko działa i się wyświetla jeśli więcej niż jedną wszystko się wali. Chciałbym aby zwracał kilka wartości. Proszę o pomoc z góry dziękuje.

Pozdrawiam

0

zle podpinasz, patrz DataSource

0

Hmm nie do końca to rozumiem.
Czytałem na temat dataSource i korzystałem ale przy dataSet. Jeśli chodzi o procedury nie wiem jak to ugryźć. Jeśli możesz rozszerz swoją wypowiedź.

0

tak czy inaczej zapytanie zwraca tobie jakas liste czyli da sie po niej przejsc, wiec mozna albo upakowac to do dataset albo do datatable a potem dobindowac do cb.

0

...a cmd.Parameters["@imie"].Value zwraca Ci wartosc PARAMETRU @imie, a nie wynik wykonania procedury...

0

Teraz rozumiem o co Ci chodziło. Myślałem, że tak zbudowaną procedurę można od razu podpiąć do combo. I stąd moje pytanie. Co do ostatniej wypowiedzi; tak zwraca mi wartość parametru procedury ale skoro @imie jest Output i w dodatku ładuję do tej zmiennej selecta czyli wynik procedury. Ale mogę się mylić.

Pozdrawiam

0

moj blad, racja - przeoczylem 'output'

mowiac w skrocie - kombinowales dobrze, w ten sposob rzeczywiscie mozna (i tak trzeba) odebrac wartosc out-parametru i w ten dokladnie sposob mozna ja dopisac do listy wyboru combo

....ale...
out param typu varchar(n) nie jest w stanie pomiescic wiecej niz 1 i tylko 1 wartosc. to znaczy, ze Twoja procka moze w ten sposob zwracac tylko 1 'wiersz'. jesli chcesz zwracac wiecej -- musisz robic selecta nie do zmiennej, tylko 'w powietrze' i pozniej wynik procedury zaladowac np. do DataSet czy DataTable

a, i tak przy okazji:

where id = 1 and id = 3

i tak nie ma szans zwrocic jakiegokolwiek wiersza :))

0

na sile sie da (np z grupowaniem i zszywaniem ciagow - taki CSV albo zrobienie XML'a) jednak to rozwiazania na okolo.

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