Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# i sql baza- (sqlexception)

[es] :: .NET :: .NET Desktop razvoj :: C# i sql baza- (sqlexception)

[ Pregleda: 1702 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

roberto555
Croatia

Član broj: 64744
Poruke: 451
*.cmu.carnet.hr.



Profil

icon C# i sql baza- (sqlexception)06.09.2006. u 22:00 - pre 215 meseci
pozdrav, zna li netko kako da saznam koja greška se dogodila!'? eto na što mislim, imam apl.u C# i radi sa sqlbazom (VS 2005 Pro,i sql server expr.2005),u bazi imam dosta tablica koje su povezane, i sad kad se upisuje u tablicu A u neka polja se može upisati samo podatak koji postoji u tablici A-a, (glavni ključ tablice A-a je strani ključ tablici A,ref.int.je uklj.!),ovo je ok ako je samo jedna onda mi

try
{
..neki kod...
}
catch(system.data.sqlclient.sqlexception)
{
...
}

hvata tu gresku te u dijelu catch mogu reci sto je,bez da me zanima vise o grešci, no ja ih imam više pa bi mi bilo puno bolje da znam o čemu se radi da mogu reči točno koja je greška u pitanju,
pa stavim

try
{
..neki kod...
}
catch(system.data.sqlclient.sqlexception exc)
{
...
}
i sad nisam uspio pronaci da se (exc.--messages,..---) razlikuje po bilo cem osim po message,i jos nekim takvim koji mi i nisu od koristi errornumber je uvijek isti,,,dakle treba mi nešto što bih tu mogao iskoristiti da znam o kojoj je grešci riječ,!?!?
kako da to napravim??

-------------------------------------------
-jos jedno popratno pitanjce:

-u vb-u ima jedna naredba end sub kako se to radi u c#?

recimo:

if neki uvjet then
....
else
...
end sub
end if
.
.
.dalje kod...


hvala!
----Roberto----
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
212.200.220.*

Sajt: www.mika.rs


+6 Profil

icon Re: C# i sql baza- (sqlexception)07.09.2006. u 09:38 - pre 215 meseci
Tja, mozes da nakacis vise catch blokova i da svaki hvata drugi tip exception-a.
catch(SqlException){...}catch(Exception){....}
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

aleksandarpopov
IT consultant
Senta

Član broj: 57172
Poruke: 484
82.131.209.*

Sajt: www.linkedin.com/in/aleks..


Profil

icon Re: C# i sql baza- (sqlexception)07.09.2006. u 10:00 - pre 215 meseci
End sub -> mozes da stavis jednostavno return;
Hvatanje greske - mozda ovako nesto: (- ovo je kod iz knjige C# baze podataka od pocetka u izdanju Wrox-a)
Code:

/*
 * Created by SharpDevelop.
 * User: developer
 * Date: 23.6.2006
 * Time: 23:06
 */
 using System;
 using System.Data;
 try
 {
     //neke komande za rad sa bazom podataka
 }
catch (System.Data.SqlClient.SqlException e2)
{
    string strExx="";
    for (int i=0;i< e2.Errors.Count;i++)
    {
        strExx= strEx + "\n" + "Index#" + i + "\n" +
          "Exception :" + e2.Errors[i].ToString() + "\n" + "Number : " +
          e2.Errors[i].Number.Tostring() + "\n";
     }
     MessageBox.Show(strExx,"Database Exception");

}
catch (System.Exception e3)
{
  strEx="";
  strEx="Source : " + e3.Source;
    strEx= strEx + "\n" + "Error Message : " + e3.Message;
    MesageBox.Show(strEx,"ADO.NET Exception");
}
finally
{
    if(cn.State == ConnectionState.Open)
    {
        cn.Close();
    }
}


Pozdrav
RTFM
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
212.200.220.*

Sajt: www.mika.rs


+6 Profil

icon Re: C# i sql baza- (sqlexception)07.09.2006. u 10:16 - pre 215 meseci
End sub je u VB-u isto sto i zatvarnje metode sa } u shrapu
Da nisi mislio na exit sub ?
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

roberto555
Croatia

Član broj: 64744
Poruke: 451
*.cmu.carnet.hr.



Profil

icon Re: C# i sql baza- (sqlexception)07.09.2006. u 14:41 - pre 215 meseci
joj da ,exit sub je u VB, to sam mislio krivo sam se izrazio, znaci return u c#,
probat cu ovo s greškom ovako, mislio sam da možda ima koji bolji način, ovo da ubacim vise catch,, je ok,al ovaj tip greske hvata koliko sam uspio skuziti samo slqexception, ili da ne stavim nista u catch(..),,,a buduci da ako ne stavim sqlexception nece ni uloviti gresku raspast ce se program,tako da nemogu nabac vise njih, bilo bi ok da ih stavim vise al kad bi jedna greska bila recimo ovakva pa bi stavio sqlexc. pa da recimo djeljenje s nulom, itd...al ovdje nemogu tako,
probat cu ovo vise!,hvala!

----Roberto----
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
212.200.220.*

Sajt: www.mika.rs


+6 Profil

icon Re: C# i sql baza- (sqlexception)07.09.2006. u 15:23 - pre 215 meseci
Prvo hvataj exception-e koje zelis posebno da hendlujes, a sve ostale hvataj kao obican tip Exception. Npr.:
Code:

catch(SqlException se){
Debug.WriteLine("Zajebata greska ! " + se.Message)
... neko specificno hendlovanje ....
}
catch(COMException ce){
Debug.WriteLine("Zajebata greska ! " + ce.Message)
... neko specificno hendlovanje ....
}
catch(Exception err){
Debug.WriteLine(err.Message);
//Generalno hendlovnje ostalih gresaka
MessageBox.Show(this, err.Message);
}

America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

roberto555
Croatia

Član broj: 64744
Poruke: 451
*.cmu.carnet.hr.



Profil

icon Re: C# i sql baza- (sqlexception)07.09.2006. u 17:33 - pre 215 meseci
pa mislim da kuzim (al samo mislim :) ) sto mi zelis reci no ne kuzim,što da radim pod "...neko spec. hendl...."??---mozes to ukratko pojasniti?
----Roberto----
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
213.137.127.*

Sajt: www.mika.rs


+6 Profil

icon Re: C# i sql baza- (sqlexception)08.09.2006. u 00:41 - pre 215 meseci
Hmmmpfh, izgleda da se skroz ne razumemo

Uglavnom, ono sto sam govorio je da ako napravis jedan try blok, u koji strpas sve i svasta (konverzije jednog tipa u drugi, pristupanje bazi, drndanje sa COM objektima ... ), mozes sa vise catch blokova da hvatas odredjene greske (od konverzije, od baze, od com-a...).

Ako si mislio iz SQL-a da bacas greske, mozes koristiti raiserror. Razjasni malo sta si mislio.


America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

roberto555
Croatia

Član broj: 64744
Poruke: 451
*.cmu.carnet.hr.



Profil

icon Re: C# i sql baza- (sqlexception)08.09.2006. u 11:26 - pre 215 meseci
ne znam kako ti mene al ja tebe ne razumijem -)

vidi na primjeru:::>

try
{
//ovdje radim recimo dodavanje novog zapisa u bazu
sqlcommand cmd=new sqlcommand("dodajuTablicuA",sqlconnection1);/*dodajutablicA je ime stored proc. u kojoj se vrsi insert*/
cmd.command type=command type.stored proc.;
cmd.parameters.add(....dodajm sve parametre koji su potrebni);
.
.
sqlconnection1.open();
cmd.excutenonquery();
sqlconnection1.close();
}
catch( system.sqlclient.sqlexception ex)
{

// tu mi treba sad da znam sto je izazvalo gresku,(citaj dole nize)

}

----> ovo u Tablicu A dodaje novi zapis a Tablica A ima recimo:
Ime --- Prezime --- sfulice --- brojposte

te se taj sfulice i broj poste povlace iz Tablica_ulice i Tablica_poste
Tablica_ulice ima: sfulice---nazivulice
tablica_poste ima: brojposte --- nazivposte

i sad ako se na neki nacin dogodi da u tablicu A zelim uspisati sifru ulice ili broj poste koji u tablica_ulice i tablica_poste ne postoji, dode do greske, i sqlexception ulovi tu gresku, al onda to moze biti da je gresku prouzrocilo to da se zeljela upisati sifra ulice koje u tablica_ulice nema ili broj_poste koji nema u tablica_poste,,,kuzis? i sad bi mi trebalo da mogu uloviti gresku svejedno mi je kako, al da onda mogu znati dal je do nje doslo jer je upisivana recima sifra_ulice koja ne postoji ili broj poste koji ne postoji,,,,kuzis sto zelim??

ako stavim ex.message iz tog bi mogao dobiti jer ovdje pise veza koja neda da se to upise,no tad je to "drz vodu dok majstori ne odu",a gledao sam ex.number je isti bez obzira zelim li broj poste koji nema ili sifru ulice koje nema,!
!!thx!!
----Roberto----
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
212.200.220.*

Sajt: www.mika.rs


+6 Profil

icon Re: C# i sql baza- (sqlexception)08.09.2006. u 12:20 - pre 215 meseci
Ok, kontam te
Kao sto sam rekao treba ti raiserror. U toj storci koja radi update/insert hvataj gde proces pukne i sam baci gresku.

Generalizovano:

Code:


begin trans
declare @errMessage varchar(100)

insert into Tabela_A .... bla-bla-truc-truc

if @@error != 0
begin
set @errMessage = 'Greska kod upisa u tabelu A'
goto errorHandler
end

insert into Tabela_B .... bla-bla-truc-truc

if @@error != 0
begin
set @errMessage = 'Greska kod upisa u tabelu B'
goto errorHandler
end

commit trans
return 

errorHandler:
rollback trans
raiserror(@errMessage, 16 ,1)


U C# hvatas SqlException, a Message property ce imati vrednost @errMessage kada je pukla storka. Za konkretno tvoj problem morao bih videti tu storku za upis.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

roberto555
Croatia

Član broj: 64744
Poruke: 451
*.cmu.carnet.hr.



Profil

icon Re: C# i sql baza- (sqlexception)08.09.2006. u 13:04 - pre 215 meseci
nije problem,ja cu to lako na svoj primjeniti samo da skuzim kako,e koliko vidim meni tocno to treba,u stored proceduri cu znaci napisati ono sto ce biti exc.message.i to ispisati, ovisi gdje dode do greske poruka ce biti drugacija, probat cu ovo,,,, nadam se da bude radilo, tocno to bi mi trebalo, ko da si znao :))))
hvala, ak nebudem uspel uspostaviti ovo -> javim se ;)

daj mi jos samo napisi:
raiserror(@errMessage, 16 ,1) ->16,1?? cemu sluze te brojke?
----Roberto----
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
212.200.220.*

Sajt: www.mika.rs


+6 Profil

icon Re: C# i sql baza- (sqlexception)08.09.2006. u 13:33 - pre 215 meseci
One pokazuju koliko je greska ozbiljna/fatalna, da li treba da se obustavi izvrsavanje, da li da se prekine konekcija itd. Imas lepo objasnjeno u SQL books online.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

roberto555
Croatia

Član broj: 64744
Poruke: 451
*.cmu.carnet.hr.



Profil

icon Re: C# i sql baza- (sqlexception)08.09.2006. u 16:01 - pre 215 meseci
jos nemam tu dokumentaciju jer mi je ovdje previse 125MB za skidati sa dial-up om,, al ovih dana cu nabaviti, i uspio sam napraviti sa ovim kako si mi rekao, i radi odlicno, to je to,
pozdrav!
----Roberto----
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
213.137.127.*

Sajt: www.mika.rs


+6 Profil

icon Re: C# i sql baza- (sqlexception)08.09.2006. u 18:21 - pre 215 meseci
Ona dolazi sa instalacijom MS Sql servera, da se nepotrebno ne maltertiras sa skidanjem
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: C# i sql baza- (sqlexception)

[ Pregleda: 1702 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.