Poslao: 12 Nov 2003 17:49
|
offline
- snoop
- Genghis Khan
- Pridružio: 18 Apr 2003
- Poruke: 8134
- Gde živiš: U kesici gumenih bombona...
|
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
openConn()
Dim strSQLSpisakCD As String
strSQLSpisakCD = "SELECT * FROM spisak_cdova,grupa WHERE spisak_cdova.grupa=grupa.br_grupe ORDER BY br_cda DESC;"
adoRS = adoConn.Execute(strSQLSpisakCD)
Do Until adoRS.EOF
lstSpisakCD.Items.Add(adoRS("br_cda"))
lstSpisakCD.Items(0).SubItems.Add(adoRS("naziv_cda"))
lstSpisakCD.Items(1).SubItems.Add(adoRS("ime_grupe"))
adoRS.MoveNext()
Loop
cl.cc()
End Sub
ovaj code je radjen u Visual Basic.NET-u i pravi sledecu gresku:
An unhandled exception of type 'System.InvalidCastException' occurred in CD Base v1.001 b.exe
Additional information: Specified cast is not valid.
ako stavim
lstSpisakCD.Items.Add(CStr(adoRS("br_cda")))
kaze da ne moze da konvertuje u String i nikako ne mogu da u ListView procitam iz baze i upisem u ListView...
openConn() je procedura koja otvara konekciju prema bazi, a
cl.cc() je klasa koja sadrzi proceduru cc() koja zatvara konekciju prema bazi...[/code]
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 25 Nov 2003 19:56
|
offline
- Pridružio: 16 Jun 2003
- Poruke: 240
|
Ok idemo iz pocetka:
1. Stavis ListView na formu i dodas 3 Columns-a (broj CD-a, Naziv CD-a, Ime grupe)
2. View podesis na Details
3. I onda bi ja tvoju kodu
lstSpisakCD.Items.Add(adoRS("br_cda"))
lstSpisakCD.Items(0).SubItems.Add(adoRS("naziv_cda"))
lstSpisakCD.Items(1).SubItems.Add(adoRS("ime_grupe"))
promenio u
Dim item1 As New ListViewItem(adoRS("br_cda"))
item1.SubItems.Add(adoRS("naziv_cda"))
item1.SubItems.Add(adoRS("ime_grupe"))
lstSpisakCD.Items.Add(item1)
p.s. Ako ti adoRS("br_cda") vraca Integer onda ga moras pretvoriti u string
item1.SubItems.Add( CStr( adoRS("naziv_cda") ) )
To bi trebalo da ti pomogne.
Pozdrav.
|
|
|
|
Poslao: 26 Nov 2003 00:41
|
offline
- snoop
- Genghis Khan
- Pridružio: 18 Apr 2003
- Poruke: 8134
- Gde živiš: U kesici gumenih bombona...
|
a zasto se mora da pretvara u string ako adoRS vraca u int?!
|
|
|
|
Poslao: 26 Nov 2003 10:51
|
offline
- Pridružio: 16 Jun 2003
- Poruke: 240
|
U zgornjem postu je moja greska
Ako adoRS("br_cda") vraca string
Dim item1 As New ListViewItem( DirectCast(adoRS("br_cda"),string) )
item1.SubItems.Add( DirectCast(adoRS("naziv_cda"),string) )
item1.SubItems.Add( DirectCast(adoRS("ime_grupe"),string) )
lstSpisakCD.Items.Add(item1)
Ako adoRS("br_cda") vraca int
Dim item1 As New ListViewItem( CStr( DirectCast(adoRS("br_cda"),Integer) ) )
item1.SubItems.Add( DirectCast(adoRS("naziv_cda"),string) )
item1.SubItems.Add( DirectCast(adoRS("ime_grupe"),string) )
lstSpisakCD.Items.Add(item1)
Sigurno se pitas sta je sad to DirectCast(varijabla,Tip) ??
C++ programeri bi napisali
double x = 2.3;
int y = (int)x;
P.S. Post cu da zavrsim malo kasnije sad moram da idem u grad.
|
|
|
|
Poslao: 26 Nov 2003 16:50
|
offline
- Pridružio: 16 Jun 2003
- Poruke: 240
|
Ok eto mene nazad.
TypeCast se u .NET-u upotrebljava mnogo vise nego pre. Omogucava ti da promenis tip varijable. Naravno tip koji menjas i tip u kojega menjas moraju da budu u nekoj povezavi oce-...-sin.
npr. Imas klasu Object koja je otac ostalim klasama.
Object -> klasa1 -> klasa2
Klasa2 ima public varijablu x.
Ako imas varijablu tipa Object onda ne mozes da dostupas do X.
Nacin sa kojim to resis je TypeCasting.
VB.NET
Dim Varijabla1 as Object
vrednost = DirectCast(Varijabla1, Klasa2).x
C#/C++
Object Varijabla1;
vrednost = (Klasa2)Varijabla1.x;
Pitanje2:
Konstruktor ListViewItem-a ocekuje varijablu tipa string koju ce da posreduje kao ime reda (ime Item-a).
ListView je sastavljen iz Item-ov koji imaju samo jedno ime, ali mogu da imaju vise podimena.
Podimena su vidljiva samo kada stavis vrednost VIEW na Details
Kada ti baza vrati tip Integer onda moras da ga Cast-as u string da bi ga dao kao parametar u konstruktor ListViewItem.
Isto vazi i za ListViewItem.SubItem.Add()
Ako hoces da proveris kakav tip koji konstruktor ocekuje samo potrazis tu klasu u Helpu i vidis.
To bi bilo to, Pozdrav.
|
|
|
|