[ bookky @ 15.12.2006. 21:44 ] @
Pozdrav svima, trebao bih pomoc sa citanjem podataka iz baze. Radim u Visual C++ 2005 i sa MS SQL 2005.
Problem je sljedeći:
Ja sam pokušao pročitati neke vrijednosti iz baze(na nacin koji sam vam dolje poslao) i stvar je radila dok su podatci bili tipa "char" ali kada su podatci bili tipa "float" izbaci mi error. Znam da treba nesto sredit sa tim tipovima podataka, ali ne znam sto ni kako?
Svaki savjet je dobro dosao, jer ovo bi trebalo proradit do ponedeljka, hvala unaprijed!

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
String ^arg1=textBox1->Text::get();

try{
if(radioButton1->Checked==true){
cmd->CommandText="SELECT * FROM Razred_5 WHERE "+"Rb_Ucenika='"+arg1+"'";
cmd->CommandType=CommandType::Text;
cmd->Connection=conn;
conn->Open();
SqlDataReader ^rd;
rd=cmd->ExecuteReader();
while(rd->Read()==true){
textBox8->Text::set(rd->GetString(1));
textBox9->Text::set(rd->GetString(2));
textBox13->Text::set(rd->GetString(3));
}
rd->Close();
conn->Close();
delete rd,arg;
}else{
MessageBox::Show("Greška unosa!",MessageBoxButtons::OK,MessageBoxIcon::Error);
}

}catch(SqlException ^ex){
MessageBox::Show(ex->Errors->ToString(),"Greška!",MessageBoxButtons::OK,MessageBoxIcon::Error);
}

}
[ aleksandarpopov @ 17.12.2006. 09:56 ] @
Stavi da ti taj Reader cita Float ili tip podatka kojeg je odgovarajuce polje.
Code:
textBox13->Text::set(rd->GetString(3));

Ako ti je ta kolona tipa float, prepravi na (pisem napamet) ali ovako nekako:
Code:
rd->GetString(3)  //prepravi na // rd->GetFloat(3) 

Ali moras dodati i ToString() iza ovoga, da bi mogao dodeliti textbox.Text...
Pozdrav
[ bookky @ 17.12.2006. 12:49 ] @
Sve sam pokusao i nisam uspio, ja bih vas zamolio da mi neko posalje bilo kakav primjer citanja iz baze ali podataka tipa float ili neki drugi, samo da nije String i da se to ispise u textBox-u. hvala
[ aleksandarpopov @ 18.12.2006. 07:18 ] @
Code:
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
String ^arg1=textBox1->Text::get();

try{
if(radioButton1->Checked==true){
cmd->CommandText="SELECT * FROM Razred_5 WHERE "+"Rb_Ucenika='"+arg1+"'";
cmd->CommandType=CommandType::Text;
cmd->Connection=conn;
conn->Open();
SqlDataReader ^rd;
rd=cmd->ExecuteReader();
while(rd->Read()==true){
textBox8->Text::set(rd->GetString(1));
textBox9->Text::set(rd->GetString(2));
textBox13->Text::set((rd->GetFloat(3))->ToString());
}
rd->Close();
conn->Close();
delete rd,arg;
}else{
MessageBox::Show("Greška unosa!",MessageBoxButtons::OK,MessageBoxIcon::Error);
}

}catch(SqlException ^ex){
MessageBox::Show(ex->Errors->ToString(),"Greška!",MessageBoxButtons::OK,MessageBoxIcon::Error);
}


Probaj ovako kako sam ti prepravio kod.
[ bookky @ 19.12.2006. 14:30 ] @
Pokusao sam ovako kako mi je aleksandarpopov predlozio:
Code:
textBox13->Text::set((rd->GetFloat(3))->ToString());

ali mi izbaci error i kaze: error C2227: left of '->ToString' must point to class/struct/union/generic type, type is 'float'
Kad to nije radilo probao sam:
Code:
textBox13->Text::set(Convert::ToString(rd->GetFloat(3)));

sad nije bio error, ali kada sam pokusao procitati iz baze javi mi gresku:
An unhandled exception of type 'System.InvalidCastException' occurred in System.Data.dll
Additional information: Specified cast is not valid."

[ aleksandarpopov @ 19.12.2006. 16:29 ] @
J...a radim u C# al reko da ti pokusam pomoci kad se niko ne javlja, probaj ovako :
Code:

((rd->GetFloat(3)).ToString())

Za obicne floatove radi. Mrzi me da isprobavam sa bazom.
Ne znam tacno kako ide sintaxa u c++, experimentisi,probaj sa nekim vec gotovim primerima da vidis sta kako radi, nadji neki tutorial.
Pozdrav