Jump to content
joaocarlos07

Delete SQL em Listview

Recommended Posts

joaocarlos07

Boa noite a todos ,

É o seguinte eu tenho uma listview que me lê os dados que eu tenho na BD e apresenta-os , agora o que eu tenho duvida e ja tentei fazer é o seguinte eu tenho um botao de remover e queria que quando seleccionasse um item da listview e clicasse no botao remover ele me apagasse da BD os dados dessa linha ou seja para eles depois desaparecessem da minha listview ,

Alguem me pode ajudar ?

Desde ja o meu agradecimento


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
filiperainho

Tens de enviar para a listview os dados como referis-te e em seguida no evento clique da listview vais buscar através de um cast o registo que foi escolhido e sacas-lhe o ID para fazeres o delete.

No fim disso listas de novo os dados para a listview para ficar actualizado.


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
joaocarlos07

Sim eu ja tenho os dados a aparecer na listview , podias-me dar um exemplo por favor ? , não percebi a parte do cast :x

Obrigado e bom dia


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
filiperainho

mostra-me o código onde estas a mandar os dados para a listview.


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
joaocarlos07

Tenho este codigo para me aparecer os dados da BD na Listview ,

//ligacao ao SQL

        static string oi = "Data Source=SDMMC Storage Card/SQL/geral.sdf; Password = 123456 ";
        SqlCeConnection liga = new SqlCeConnection(oi);

        private void caixaregistadora_Load(object sender, EventArgs e)
        {
            
            //abre ligacao
            liga.Open();
            //pesquisa na BD 
            SqlCeCommand cmd = new SqlCeCommand("SELECT [nome],[preco] FROM [vendas] ", liga);
            SqlCeDataReader dr = cmd.ExecuteReader();

            //preenche o cabeçalho do listview com os nomes dos campos
            for (int i = 0; i < dr.FieldCount; i++)
            {
                ColumnHeader ch = new ColumnHeader();
                ch.Text = dr.GetName(i);
                listView1.Columns.Add(ch);

            }

            //define um item listview
            ListViewItem item; 

            //percorre o sqldatareader para obter os dados
            while (dr.Read())
            {
                item = new ListViewItem();
                item.Text = dr.GetValue(0).ToString();
                //preenche o listview com itens
                for (int i = 1; i < dr.FieldCount; i++)
                {
                    item.SubItems.Add(dr.GetValue(i).ToString());
                }
                listView1.Items.Add(item);

                //aparecer nome do produto na label
                label3.Text = Convert.ToString(dr["nome"]);
                        
            }

            liga.Close();
          


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
filiperainho

nunca trabalhei dessa maneira com listview, normalmente faço um override na classe que quero mostrar na listview e  depois quando selecciono consigo ter acesso a todos os campos daquele registo.


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
joaocarlos07

Eu nunca trabalhei assim :x tambem sou iniciante , eu ja tentei fazer o comando DELETE mas quando chega a altura de meter a condição nao sei que meter :x


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Não me consegues ajudar ? nem que seja por a tua maneira :x obrigado na mesma


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
filiperainho

o problema é não saberes fazer o delete ?


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
joaocarlos07

Eu sei fazer o comando DELETE de SQL mas tenho que por a condição WHERE e nao sei que por neste caso para eliminar o item da listview que esta selecionado :x

Se me poderes ajudar desta ou outra maneira agradecia :P


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
nando4

Boas...

João já descobri como é, experimenta assim:

listView1.FocusedItem.Text

Cumps

Share this post


Link to post
Share on other sites
joaocarlos07

Olha continua sem dar :x

Tenho o codigo assim :


            //abre ligacao
            liga.Open();
            //Elimina na BD 
            SqlCeCommand cmd4 = new SqlCeCommand(" DELETE FROM [vendas] Where [nome] = '" + listView1.FocusedItem.Text + "' ", liga);
            cmd4.ExecuteNonQuery();
            liga.Close();

Da o erro :  ObjectDisposeException was unhandled

Obrigado pela ajuda


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Afinal ja esta resolvido , obrigado ;)


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.