NÃO CONSIGO INSERIR DADOS EM TABELA C#
boa noite.
Sou novo por aqui e espero não estar postando uma dúvida repetitiva.
é o seguinte:
estou criando um software em C# para meu irmão, ele é professor de música e deseja ter um controle das aulas que serão dadas. Horário, data.
Bem como cadastrar alunos, novos planos e tal.
Consegui cadastrar novos planos na tblPlanos no meu banco (SGBD é SQL Server Express 2014), porém não estou conseguindo cadastrar um novo aluno usando como exemplo o cadastro de plano.
Criei uma tabela temporária chamada tblTemp pra tentar achar o erro mais rápido, ela possui apenas duas colunas: ID (int) e Nome (Varchar(25)).
Tanto nesta tabela, quanto na de alunos não estou conseguindo cadastrar. Nenhum erro é mostrado, nenhuma falha, porém nada é cadastrado
Segue método:
private void btnConfirmar_Click_1(object sender, EventArgs e)
{
try
{
SqlConnection conn = classConexao.obterConexao();
if (conn == null)
{
MessageBox.Show([Ô]Falha ao conectar.[Ô]);
}
else
{
MessageBox.Show([Ô]Conexão efetuada com sucesso.[Ô]); //A CONEXÃO FUNCIONA NORMALMENTE, ESTA MENSAGEM SEMPRE é MOSTRADA
}
String cadastrarAluno = [Ô]INSERT INTO tblTemp VALUES ([ô]Teste [ô])[Ô]; //Jà TENTEI TAMBéM: INSERT INTO tblTemp (ID, Nome) VALUES ([ô]Teste[ô])
SqlCommand comando = new SqlCommand(cadastrarAluno, conn);
comando.Parameters.AddWithValue([Ô]@nome[Ô], SqlDbType.VarChar); //Jà TENTEI USAR NESTA LINHA Nome com letra maiúscula: [Ô]@Nome[Ô]
}
catch (Exception erro)
{
MessageBox.Show(erro + [Ô]Erro!![Ô]);
}
}
Alguém poderia me ajudar?
Desde já agradeço.
string connection =[Ô]Server=localhost;Database=TesteOmar; Trusted_Connection=yes[Ô];
SqlConnection Conn = new SqlConnection(connection);
Conn.Open();
String cadastrarAluno = [Ô]INSERT INTO teste(Cod,Nome) VALUES (@Cod,@Nome)[Ô]; //Jà TENTEI TAMBéM: INSERT INTO tblTemp (ID, Nome) VALUES ([ô]Teste[ô])
SqlCommand comando = new SqlCommand(cadastrarAluno, Conn);
comando.Parameters.AddWithValue([Ô]@Cod[Ô], txt1.Text);
comando.Parameters.AddWithValue([Ô]@Nome[Ô],txt2.Text); //Jà TENTEI USAR NESTA LINHA Nome com letra maiúscula: [Ô]@Nome[Ô]
comando.ExecuteNonQuery();
MessageBox.Show([Ô]Registro incluido com sucesso![Ô]);
Citação::
Sou muito cru no C#, mas é + ou - assim.
string connection =[Ô]Server=localhost;Database=TesteOmar; Trusted_Connection=yes[Ô];
SqlConnection Conn = new SqlConnection(connection);
Conn.Open();
String cadastrarAluno = [Ô]INSERT INTO teste(Cod,Nome) VALUES (@Cod,@Nome)[Ô]; //Jà TENTEI TAMBéM: INSERT INTO tblTemp (ID, Nome) VALUES ([ô]Teste[ô])
SqlCommand comando = new SqlCommand(cadastrarAluno, Conn);
comando.Parameters.AddWithValue([Ô]@Cod[Ô], txt1.Text);
comando.Parameters.AddWithValue([Ô]@Nome[Ô],txt2.Text); //Jà TENTEI USAR NESTA LINHA Nome com letra maiúscula: [Ô]@Nome[Ô]
comando.ExecuteNonQuery();
MessageBox.Show([Ô]Registro incluido com sucesso![Ô]);
Obrigado pela resposta OMAR2011, porém não funcionou.
Minha coluna ID está setada como PK e por isso não preciso informá-la no comando em SQL. Fiz dessa forma no cadastro de plano e havia funcionado. Já no cadastro de aluno não dá.
Tentei como vc informou e de outras maneiras também, com e sem ID na linha comando.Parameters.AddWithValue([Ô]@Nome[Ô], textNomeAluno.Text), tentei também
comando.Parameters.AddWithValue([Ô]@Nome[Ô], SqlDBType.VarChar) - Sem sucesso mais uma vez.
Muitas horas de sábado e domingo perdido sem conseguir nada
Vai depender de como definiu sua chave primária,
Se ela não for identity Increment vai precisar dos parâmetros.
Fiz o teste tanto com Increment e sem increment.
Funcionou legal aqui no meu teste sem erro nenhum.
tentei muito aqui e não vai.
Ontem consegui usando o comando ExecuteNonQuery, apenas na tblTemp.
Já na tblAlunos não vai...
Tá brabo.