[ bjtetf @ 16.04.2007. 15:58 ] @
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.
[ roberto555 @ 16.04.2007. 17:02 ] @
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!
[ bjtetf @ 16.04.2007. 19:35 ] @
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.
[ mmix @ 16.04.2007. 19:44 ] @
Trebaju ti "mali" navodnici

Code:

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


PS. Pazi na SQL-Injection napade.
[ bjtetf @ 17.04.2007. 13:56 ] @
A sta je problem ovde:

Code:

unos.CommandText = " INSERT INTO tabela VALUES naziv = ' " + comboBox1.Text + " ' ";
[ roberto555 @ 17.04.2007. 14:21 ] @
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]
[ Prokleta_Nedelja @ 17.04.2007. 15:58 ] @
probaj
Code:

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