🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #597

Usuwanie wiersza: delete method, stored procedure

#597
From: pe3no
Date: Fri, 19 Mar 2004 00:45
56 lines
4382 bytes
Cze��, mam na imi� Piotrek, witam serdecznie wszystkich Grupowicz�w. Na
wst�pie chc� stwierdzi�, �e mimo i� studiuj� od prawie 3 lat informatyk�, w
mojej wiedzy s� r�ne "bia�e plamy" albo "czarne dziury" - jak zwa�, tak
zwa�. Mia�em solidnie wy�o�one programowanie strukturalne (by� Pascal 7.0).
Potem Delphi (niby Object Pascal, ale zamiast nauki obiektowo�ci, by�a
zabawa komponentami, wi�c obiektowo�ci zbytnio nie czuj�). Od niedawna nasi
wyk�adowcy przeszli na .NET, ale mam wra�enie, �e i oni dopiero si� ucz�,
wi�c musz� szuka� pomocy na Waszej Grupie.

Mam baz� na SQL Server 2000, w kt�rej jest tabela "osoby" i 4 procedury
sk�adowane "osoby_select", "osoby_insert", "osoby_update", "osoby_delete".
Zgodnie z tym, co mi wpajaj� na studiach, chcia�bym logik� zawrze� w bazie,
a w .NET buduj� "cienkiego klienta", kt�ry b�dzie korzysta� z procedur
sk�adowanych.

Buduj� zatem interface: Windows Application w C#, w �rodowisku Visual Studio
.NET 2003. Na formularzu mam do poszczeg�lnych komponent�w (listbox,
textboxy, comboboxy) zbindowane dane cz�stkowe (idosoby, imie, nazwisko,
nip, pesel, itd), kt�re pojawiaj� si�, gdy klikn� na listboxie dan� osob�.

Zrealizowa�em ju� wstawianie nowej osoby oraz modyfikacj� (gdy wywo�uj�
metod� Update dataadaptera, on u�ywa odpowiedniej procedury sk�adowanej) -
by�y problemy, ale sobie poradzi�em, bo mia�em przyk�ady na �wiczeniach.

Nie mam jednak absolutnie poj�cia, jak wzi�� si� do zrealizowania usuwania
danych. Gdybym mia� datagrida, nie by�oby w og�le o czym m�wi�: zaznaczam
wiersz, naciskam klawisz delete i przy wywo�aniu metody Update, dataadapter
u�y�by procedury sk�adowanej osoby_delete dla usuni�tego wiersza, dla
wstawionych - osoby_insert, dla zmodyfikowanych-osoby_update. Ale ja nie
u�ywam, niestety datagrida, a dane widz� na formie w textboxach, comboboxach
i listboxie.

1 Jak zatem usun�� z dataseta osob�, kt�rej id widz� w textboxie? W ksi��ce
ADO.NET step by step znalaz�em kawa�ek kodu:

System.Data.DataRow dr;
dr=GetRow();    //przechwytuj� bierz�cy wiers, kt�ry widz� na ekranie
dr.Delete();     //usuwam go

 ale jak wspomina�em, obiektowo�� kumam s�abo. Pr�ba skorzystania z tego
przyk�adu w moim projekcie nie powiod�a si� - u mnie druga linijka wywala
b��dy - nie kuma metody GetRow - nie wiem dlaczego? Pewnie trzeba co�
wcze�niej zadeklarowa� - nie potrafi� - sorry za moj� niewiedz�.

2. Jak wywo�a� procedur� sk�adowan�, przekazuj�c jej parametry z
poszczeg�lnych komponent�w? Je�eli wejd� do Server Explorera, odnajd� baz�
danych, tam rozwijam procedury sk�adowane i odnajduj� moj� procedur�
"osoby_delete". Gdy po�o�� j� na formie, mam komponent sqlCommand1. Pod
przyciskiem m�g�bym (gdybym potrafi�) umie�ci� kod wywo�uj�cy procedur�,
kt�rej przekazuj� parametry widziane w komponentach (zak�adam, �e chc�
usun�� go�cia, kt�rego obecnie wy�wietlam, wi�c przekazuj� jego idosoby).
Jaki kod napisa� pod przyciskiem?

Z g�ry serdecznie dzi�kuj� za wszystkie rady,

Piotrek
Technical Details
Message-ID: <c3dfpr$ch5$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-09!supernews.com!diablo.theplanet.net!zen.net.uk!demorgan.zen.co.uk!news2.euro.net!newsfeed.wirehub.nl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-09!supernews.com!diablo.theplanet.net!zen.net.uk!demorgan.zen.co.uk!news2.euro.net!newsfeed.wirehub.nl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "pe3no" <pe...@DELETE.o2.pl>
Newsgroups: alt.pl.comp.lang.csharp,ms-news.pl.programowanie.dotnet
Subject: Usuwanie wiersza: delete method, stored procedure
Date: Fri, 19 Mar 2004 01:45:39 +0100
Organization: tp.internet - http://www.tpi.pl/
Lines: 58
Message-ID: <c3dfpr$ch5$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: pe27.warszawa.cvx.ppp.tpnet.pl
X-Trace: atlantis.news.tpi.pl 1079657085 12837 213.76.100.27 (19 Mar 2004 00:44:45 GMT)
X-Complaints-To: use...@tpi.pl
NNTP-Posting-Date: Fri, 19 Mar 2004 00:44:45 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit