🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: procedurka...

#892
From: Michal Wojas
Date: Sat, 10 Apr 2004 12:44
64 lines
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-mail
References: <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