Boa tarde pessoal.
Estou desenvolvendo um programa em C# Windows Forms, tenho uma ListBox e preciso salvar (no caso fazer um update) estes itens para uma tabela do SQL Server, mesmo utilizando qualquer estrutura de repetição (For, ForEach e ou While), é feito a leitura mas salva
somente um único item. Já declarei uma variável para estes itens e mesmo assim sempre salva um único item na tabela.
Preciso de uma solução com urgência.
Desde já agradeço a atenção de todos. Rogério.
Segue o código:
SqlConnection conn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBbookstore;Data Source=conexão");
SqlCommand GravaGenerico = new SqlCommand("UPDATE tb_Status SET NomeDoLivro=@NomeDoLivro, Nome=@Nome, Email=@Email, TelefoneCliente=@TelefoneCliente, LivrosRetirados=@LivrosRetirados, LivrosDevolvidos=@LivrosDevolvidos WHERE IDStatus=@IDStatus", conn);
int i = 0;
GravaGenerico.Parameters.Add("@IDStatus", SqlDbType.Int).Value = lblGravaID.Text;
GravaGenerico.Parameters.Add("@NomeDoLivro", SqlDbType.Text).Value = Lista3.Items[i++].ToString().Trim();
GravaGenerico.Parameters.Add("@Nome", SqlDbType.VarChar).Value = lblGravaNome.Text;
GravaGenerico.Parameters.Add("@Email", SqlDbType.VarChar).Value = lblGravaEmail.Text;
GravaGenerico.Parameters.Add("@TelefoneCliente", SqlDbType.Char).Value = lblGravaTelefone.Text;
GravaGenerico.Parameters.Add("@LivrosRetirados", SqlDbType.Char).Value = lblGravaRetirada.Text;
GravaGenerico.Parameters.Add("@LivrosDevolvidos", SqlDbType.Char).Value = lblGravaEntrega.Text;
SqlCommand contaItem = new SqlCommand("UPDATE tb_in_stock SET QuantidadeDeLivros=@QuantidadeDeLivros WHERE IDStock=@IDStock", conn);
contaItem.Parameters.Add("@IDStock", SqlDbType.Int).Value = lblIDLivro.Text;
contaItem.Parameters.Add("@QuantidadeDeLivros", SqlDbType.Char).Value = lblQuantidade.Text;
MessageBox.Show("Seleção gravado com sucesso.");
try
{
conn.Open();
GravaGenerico.ExecuteNonQuery();
contaItem.ExecuteNonQuery();
lblIDLivro.Text = string.Empty;
lblNomeLivro.Text = string.Empty;
lblQuantidade.Text = string.Empty;
Lista3.Items.Clear();
Lista2.Items.Clear();
}
catch (Exception ex)
{
MessageBox.Show("Por favor ao selecionar um livro certifique-se que ele foi enviado para o lado direito da seleção", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show(ex.Message, "Erro ");
}
finally
{
conn.Close();
}
}
Observação:
O código funciona para todos os itens menos para listbox.