Problema para alterar dados do form C Sharp
29/11/2016
0
Bom, estou usando C# com banco de dados, tenho um formulário com dois campos codigoCdd e descricaoCdd ambos do tipo texto, eu consigo incluir e excluir dados, mas quando vou alterar somente o campo descricaoCdd altera e o codigoCdd não altera. O que pode ser?
Lucas
Post mais votado
30/11/2016
Kleber Araujo
Mais Posts
30/11/2016
Lucas
Código da criação da tabela:
CREATE TABLE [dbo].[CDD] (
[CD_CDD] NVARCHAR (255) NOT NULL,
[DS_CDD] NVARCHAR (255) NOT NULL,
CONSTRAINT [PK_CDD] PRIMARY KEY CLUSTERED ([CD_CDD] ASC)
);
Código da conexão com o banco:
public void Alterar_cdd(CddModelos cdd)
{
// conexao
SqlConnection cn = new SqlConnection();
try
{
cn.ConnectionString = Dados.StringDeConexao;
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE Cdd SET DS_CDD = @DS_CDD WHERE CD_CDD = @CD_CDD;";
cmd.Parameters.AddWithValue("@CD_CDD", cdd.CodigoCdd);
cmd.Parameters.AddWithValue("@DS_CDD", cdd.DescricaoCdd);
cn.Open();
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
throw new Exception("Servidor SQL Erro:" + ex.Number);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cn.Close();
}
}
Código do evento do botão alterar:
private void bt_alterar_cdd_Click(object sender, EventArgs e)
{
if (textBoxCodigo_cdd.Text.Length == 0)
{
MessageBox.Show("O cdd deve ser selecionado para alteração.");
}
else
try
{
CddModelos cdd = new CddModelos();
cdd.CodigoCdd = textBoxCodigo_cdd.Text;
cdd.DescricaoCdd = textBoxDescricao_cdd.Text;
CddBLL obj = new CddBLL();
obj.Alterar_cdd(cdd);
MessageBox.Show("O cdd foi alterado com sucesso!");
AtualizaGridCdd();
}
catch (Exception ex)
{
MessageBox.Show("Erro: " + ex.Message);
}
}
01/12/2016
Kleber Araujo
p problema creio que seja o seguinta está na sua query, na linha :
cmd.CommandText = "UPDATE Cdd SET DS_CDD = @DS_CDD WHERE CD_CDD = @CD_CDD;";
se quer atualizar o campo codigoCdd também, vc deve incluir o update desse campo também na query que deve ficar assim:
cmd.CommandText = "UPDATE Cdd SET DS_CDD = @DS_CDD, CD_CDD = @CD_CDD WHERE CD_CDD = @CD_CDD;";
mas nesse eu não entendi por que quer alterar esse código também, pois nesse caso ai sempre ficaria a mesma coisa pois está alterando o CD_CDD onde o CD_CDD é igual a ele mesmo, entendeu, talvez necessite de um outro campo ai, estou a disposição se precisar pode mandar blz, abraços, se te ajudar a resposta deixa um Joinha =)
01/12/2016
Lucas
Bom parceiro, fiz o que disse na query:
cmd.CommandText = "UPDATE Cdd SET DS_CDD = @DS_CDD, CD_CDD = @CD_CDD WHERE CD_CDD = @CD_CDD;";
O problema ainda persiste.
Isso é referente a um sistema de controle de biblioteca de uma faculdade já existente que estou desenvolvendo do zero, me disseram para fazer semelhante, esse campo codigoCdd altera no sistema antigo.
Grato pela ajuda ! =)
01/12/2016
Kleber Araujo
02/12/2016
Kleber Araujo
Skype: kleber_skletor
07/12/2016
Lucas
Clique aqui para fazer login e interagir na Comunidade :)