• 6 odgovora
  • 2.454 pregleda
Problem sa SQLDataReader-om?? 16.04.2007. u 15:58 · pre 237 meseci #1
Imam sljedeci problem. Npr imam tabelu u bazi koja ima dvije kolone: ime, prezime.
E sada ,u jednom textboxu ucitam iz baze imena, i onda pri pritusku na dugme, zelio mi da se u datagrid upise prezime koje odgovara tom imenu.

Code:


...

private void Form1_Load(object sender, EventArgs e)
        {
     ...
            dt = ds.Tables.Add("Racun");
            dt.Columns.Add("ime", typeof(string));
            dt.Columns.Add("prezime", typeof(string));

            dataGridView1.DataSource = dt;
        }

private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection sqlConn;
            string connstring = @"server=.\sqlexpress;Integrated Security=SSPI; initial catalog=proba";

            sqlConn = new SqlConnection(connstring);
            sqlConn.Open();

            SqlCommand komanda1 = new SqlCommand();
            komanda1.Connection = sqlConn; 
            komanda1.CommandText="SELECT prezime FROM tabela WHERE ime="+comboBox1.text;

            SqlDataReader rider;
            rider = komanda1.ExecuteReader();

            DataRow dw = dt.NewRow();
            dw["ime"] = comboBox1.Text;
            dw["prezime"] = rider;
            dt.Rows.Add(dw);
       
            dataGridView1.DataSource = dt;
        }


Javlja gresku sa SqlDataReader-om.
Re: Problem sa SQLDataReader-om?? 16.04.2007. u 17:02 · pre 237 meseci #2
Code:

  SqlConnection sqlConn;
            string connstring = @"server=.\sqlexpress;Integrated Security=SSPI; initial catalog=proba";

            sqlConn = new SqlConnection(connstring);
            sqlConn.Open();

            SqlCommand komanda1 = new SqlCommand();
            komanda1.Connection = sqlConn; 
komanda1.CommandType=CommandType.Text;//ovo dodaj 
            komanda1.CommandText="SELECT prezime FROM tabela WHERE ime="+comboBox1.text;

            SqlDataReader rider;
            rider = komanda1.ExecuteReader();
while(rider.Read())//ovo dodaj
{
            DataRow dw = dt.NewRow();
            dw["ime"] = comboBox1.Text;
            dw["prezime"] = rider["prezime"]; //ovo dodaj 
            dt.Rows.Add(dw);
       }
dt.AcceptChanges();//i ov dodaj
            dataGridView1.DataSource = dt;


-probaj to dodat onda bi trebao radit!
Potpis
----Roberto----
Re: Problem sa SQLDataReader-om?? 16.04.2007. u 19:35 · pre 237 meseci #3
Oko datareader-a je resen problem, ali se pojavio ovaj:
u pitanju je ovaj SQL upit. Ako stavim

komanda1.CommandText="SELECT prezime FROM tabela WHERE ime="+comboBox1.text;

javi mi gresku: invalid name npr petar.

A ako stavim vrednost koja se nalazi u tom comboboxu:
komanda1.CommandText="SELECT prezime FROM tabela WHERE ime='petar'";

Onda odradi sve kako treba.U cemu bi mogao biti problem.
Re: Problem sa SQLDataReader-om?? 16.04.2007. u 19:44 · pre 237 meseci #4
Trebaju ti "mali" navodnici

Code:

komanda1.CommandText="SELECT prezime FROM tabela WHERE ime='"+comboBox1.text+"'";


PS. Pazi na SQL-Injection napade.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Problem sa SQLDataReader-om?? 17.04.2007. u 13:56 · pre 237 meseci #5
A sta je problem ovde:

Code:

unos.CommandText = " INSERT INTO tabela VALUES naziv = ' " + comboBox1.Text + " ' ";
Re: Problem sa SQLDataReader-om?? 17.04.2007. u 14:21 · pre 237 meseci #6
pa ovdje ti prvo ne valja sam sql upit, a dalje je pitanje dal si sql command dobro definirao, al ako pretpostavimo da jesi onda:

Code:


unos.CommandText = " INSERT INTO tabela VALUES naziv = ' " + comboBox1.Text + " ' ";



--nije valda da imaš samo kolonu naziv u "tabela"?, a da i imaš onda bi poslje "tabela" djelu trebao napisat ime kolone u koju unosiš a ako radiš ovak kak si tu napisal bez definiranja redosljeda u values djelu ih trebaš upisivat redom, a ti sad ako imaš još nešto ism naziv, možda neki int tip želiš unjet u polje tipa int string....

Insert into tabela(naziv) values ('pero'), ovo da napišeš ime kolone = radiš kod update tabela set barem koliko ja znam, ako griješim sorry...
u msdn upiši insert statement, i nači ćeš primjera od a-ž u vezi toga!

ako koristiš sql server management studio,(sql serv.2005) onda možeš doči na tabelu u koju vršiš taj unos i stavi desni klik pa script- insert to--- i odaberi kuda, pa češ vidjeti kak ti izgleda insert za tu tvoju tabelu ili koji već upit,,

i efikasnije bi bilo da napišeš što ti kaže da ne valja, dakle poruku greške, a ne ovak šturo pitanje...

nadam se da je od pomoći!


[Ovu poruku je menjao mmix dana 17.04.2007. u 15:32 GMT+1]
Potpis
----Roberto----
Re: Problem sa SQLDataReader-om?? 17.04.2007. u 15:58 · pre 237 meseci #7
probaj
Code:

kom.commandtext="INSERT INTO tabela(naziv_kolone) values combobox1.items.item(combobox1.selectedindex)"


Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme