[ bukwa @ 17.02.2010. 10:05 ] @
Bok,

ne znam kako izbrisati red iz tablice ( uz pomoć delete button-a) koji je odabran u datagridview-u.

Svaki primjer ili savjet je dobrodošao :) , hvala.
[ malo_nj @ 19.02.2010. 13:40 ] @
DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
[ bukwa @ 19.02.2010. 14:47 ] @
Hvala na odgovoru, ali to briše zapis samo iz dw-a, ne i iz same tablice...
[ malo_nj @ 19.02.2010. 16:09 ] @
Code:

DataTable dt = new DataTable();
dt.Rows.RemoveAt(dataGridView1.CurrentRow.Index);


pokusaj ovako mada nisam siguran da li se datatable rows indexi poklapaju sa datagridview rows
[ bukwa @ 19.02.2010. 16:45 ] @
morao sam malo promijeniti sintaxu : Dim dt As New DataTable()

nakon pokušaja brisanja se javi ova greška : There is no row at position 300.
[ malo_nj @ 19.02.2010. 17:00 ] @
ma ne trebas ti praviti novi datatable nego obrisi iz staroga onoga koji vec koristis
[ bukwa @ 23.02.2010. 08:56 ] @
ok, ali ne razumijem baš kako to napraviti, vjerujem da je greška negdje u sintaxi jer čim upišem tvoj kod automatski dobijem ispravak koji izgleda ovako:

DataTable(dt = New DataTable()) s greškom "Data Type is a type and cannot be used as an expression"
[ malo_nj @ 23.02.2010. 12:53 ] @
mijenja ti moj kod jer je kod mene C# a ne VB# .

Ajd sad polako kako ti se zove datatable ili ga nemas nego direktno iz baze popunjavas data grid view
[ bukwa @ 23.02.2010. 14:59 ] @
aha, ok, zove se ImenikDataSet

hvala na strpljenju, ne znam puno toga...
[ malo_nj @ 23.02.2010. 17:28 ] @
a taj dataset punis kako? wizzard ili si ti pisao kod za to?
[ bukwa @ 23.02.2010. 17:47 ] @
wizzard
[ malo_nj @ 23.02.2010. 21:00 ] @
Code:

Dim strDelete As String = "DELETE FROM TBL_NAME WHERE colname = "+ dataGridView1.CurrentRow.Cells[0].Value;
Dim cmdDelete As New OleDbCommand(strDelete, cnn)
da.DeleteCommand = cmdDelete

DataRow rowDel = menikDataSet.Tables[TBL_NAME].Rows[dataGridView1.CurrentRow.Index];
ImenikDataSet.Tables[TBL_NAME].Rows.Remove(rowDel);
ad.Update(ds.Tables[TBL_NAME]);


TBL_NAME ti je ime tabele iz koje brises

da ti je ime data adaptera koji koristis

cnn conection string na bazu

dataGridView1.CurrentRow.Cells[0].Value kontam da ti je u prvoj koloni neki broj koji jedinstveno prestavlja taj red

columnname ime te prve kolone
[ bukwa @ 25.02.2010. 10:03 ] @
javljaju se 2 greske:

1. ImenikTableAdapter.DeleteCommand = cmdDelete - DeleteCommand nije prihvacena
2. DataRow rowDel - sto ide u ovaj razmak, nesto fali, ili sam ja u krivu?

Citav kod mi izgleda ovako:

Code:
   
            Dim strDelete As String = "DELETE * FROM Imenik WHERE ID = " + DataGridView1.CurrentRow.Cells(0).Value
            Dim cnn As New OleDb.OleDbConnection("Data Source=.\SQLEXPRESS;Initial Catalog=Imenik;Persist Security Info=True;Integrated Security=True")
            Dim cmdDelete As New OleDb.OleDbCommand(strDelete, cnn)
            Dim da As New ImenikDataSetTableAdapters.ImenikTableAdapter
            ImenikTableAdapter.DeleteCommand = cmdDelete

            DataRow rowDel = ImenikDataSet.Imenik.Rows(DataGridView1.CurrentRow.Index))
            ImenikDataSet.Imenik.Rows.Remove(rowDel)
            ImenikTableAdapter.Update(ImenikDataSet.Imenik)
[ malo_nj @ 25.02.2010. 19:55 ] @
pod 2. moras sa sa Dim rowDelete As DataRow. Ovo prvo stvarno ne znam sta bi moglo biti data adapter bi trebao da ima delete commandu. Ako je nema mozes ti i rucno obrisati iz baza koristeci tu istu SQL komandu samo onda ne uradis data adapter update
[ bukwa @ 28.02.2010. 10:02 ] @
ne znam ni ja, nije mi jasno
napravio sam nesto drugo ali zadnji korak ne radi, tje ne brise nista, mozda ti vidis gdje grijesim :

Code:

        Dim msg As String
        Dim title As String
        Dim style As MsgBoxStyle
        Dim response As MsgBoxResult
        msg = "Da li zaista želite obrisati kontakt '" + Trim(txtIme.Text) + " " + txtPrezime.Text + " " + txtTvrtka.Text + "' ?"
        style = MsgBoxStyle.Exclamation Or MsgBoxStyle.YesNoCancel
        title = "UPOZORENJE"
        response = MsgBox(msg, style, title)

        Try

            If response = MsgBoxResult.Yes Then
                Dim da As New SqlClient.SqlDataAdapter("Delete * from Imenik where ID = " + Trim(txtID.Text) + "", conn)
                msg = "Kontakt uspješno obrisan!"
                style = MsgBoxStyle.Information Or MsgBoxStyle.OkOnly
                title = "Obavijest"
            Else

            End If

        Catch ex As Exception
            MsgBox(ex.Message)

        End Try


jednostavno se nista ne dogodi niti dobijem povratnu info da je negdje greska
[ malo_nj @ 28.02.2010. 11:23 ] @
Kao prvo
Dim da As New SqlClient.SqlDataAdapter("Delete * from Imenik where ID = " + Trim(txtID.Text) + "", conn)

ce ti postaviti SELECT upit.

Drugo delte se pise ovako bez zvijezdice

"DELETE FROM IMENIK WHERE ID="

I treca stvar ti je pa i nisi nista uradio ti si samo deklarisao DataAdapter.

Ajde ovako zakaci mi ti svoj projekat i ja cu ga prepraviti. Mislim da znam gdje grijesis ali moram da vidim kompletnu tu klasu.
[ bukwa @ 01.03.2010. 10:10 ] @
Shvatio sam i uspio obrisati zapis iz baze.
Samo sad jos da skuzim zasto ne pokazuje potvrdni message box da je podatak obrisan.



[Ovu poruku je menjao bukwa dana 01.03.2010. u 11:36 GMT+1]
[ bukwa @ 01.03.2010. 10:48 ] @
uspio sam sve...puno ti hvala na pomoci :)