Article View: alt.pl.comp.lang.csharp
Article #892Re: procedurka...
From: Michal Wojas
Date: Sat, 10 Apr 2004 12:44
Date: Sat, 10 Apr 2004 12:44
64 lines
3241 bytes
3241 bytes
rozrabiak wrote:
> Witam.
> Mam taka oto procedurke:
>
> public void czytajObraz()
> {
> if (datas.Tables["capsch"].Rows.Count > 0)
> {
> picbox.Image = null;
> if (!Convert.IsDBNull(datas.Tables["capsch"].Rows[context[datas,
> "capsch"].Position]["Fig"]))
> {
> fig = (byte[])datas.Tables["capsch"].Rows[context[datas,
> "capsch"].Position]["Fig"];
> if (fig.Length > 0)
> {
> System.IO.MemoryStream strfig = new System.IO.MemoryStream(fig,
> true);
> strfig.Write(fig, 0, fig.Length); Bitmap bmp1 = new
> Bitmap(strfig);
> picbox.Image = bmp1; strfig.Close();
> } // if (fig.Length > 0)
> }
> }
> }
>
> Jest ona wykonywana podczas przechodzenia pomiedzy rekordami, laduje
> ona obrazek do pictureBox-a i wyswietla na formie. Jednak w momencie,
> gdy rekord zostanie RemoveAt(...) lub Delete() wywala blad:
>
> System.Data.DeletedRowInaccessibleException: Nie mo�na uzyska� dost�pu
> do informacji o usuni�tym wierszu za po�rednictwem tego wiersza.
> at System.Data.DataRow.GetDefaultRecord()
> at System.Data.DataRow.GetRecordFromVersion(DataRowVersion
> version) at System.Data.DataRow.get_Item(String columnName)
> at capch.nawigacja.czytajObraz()
>
> i podobnie dzieje sie z rekordami swiezo dodanymi do dataset'a.
> Pytanie: czy musze sprawdzac za kazdym razem ifem czy "wchodze" do
> rekordu usunietego czy istnieje inny sposob na przeskoczenie tego
> bledu? I druga sprawa: jezeli musze sprawdzac ifem rekordy skasowane,
> to co w tym wypadku z rekordami wstawionymi, ale nie dodanymi jeszcze
> do bazy?
Nie do konca rozumiem dlaczego stanowi dla Ciebie problem, cos co generalnie
uwazane jest za "dobry nawyk programistyczny" ... mowa tutaj o warunkach
progowych, wyjatkach ... Masz do czynienia z prostym przypadkiem, gdzie
wyj�tek �w, wyst�pi� na twoich oczach. Gorszym przypadkiem jest gdy
wyst�puje on, po oddaniu programu klientowi i gdy dzwoni do Ciebie np. w
srodku fajnej imprezy ;)
No dobra ale wracajac do tego przypadku zalatwia sie go mniej wiecej tak ...
try
{
twoj kod ...
}
catch (Exception e)
{
//Ewentualnie zapisac e.Message do jakiegos pliku tekstowego tudziez bazy
}
Pewnie znasz juz try, wydaje mi sie idealne w tej sytuacji
MW
Technical Details
Message-ID:
<c58pv4$75e$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!nntp.idg.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<c575ud$ak5$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!nntp.idg.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: "Michal Wojas" <mwojas...@onet.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: procedurka... Date: Sat, 10 Apr 2004 14:44:04 +0200 Organization: news.onet.pl Lines: 66 Sender: nowickam@poczta.onet.pl@michal40.net.autocom.pl Message-ID: <c58pv4$75e$1@news.onet.pl> References: <c575ud$ak5$1@news.onet.pl> NNTP-Posting-Host: michal40.net.autocom.pl X-Trace: news.onet.pl 1081600804 7342 213.134.164.126 (10 Apr 2004 12:40:04 GMT) X-Complaints-To: ab...@onet.pl NNTP-Posting-Date: 10 Apr 2004 12:40:04 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit