Erro de inserção no Banco de Dados!
08/06/2013
0
Estou seguindo os vídeos do seguinte curso:
https://www.devmedia.com.br/curso/sistema-de-vendas-com-asp-net-e-c-em-camadas/288
Após seguir os passos dos primeiros vídeos, travei no vídeo 4, na hora de inserir no banco, acredito que fiz tudo conforme o vídeo, porém não consigo salvar no banco, fiz o breakpoint, e meu erro acontece justamente no momento da foto abaixo:
[url]https://lh6.googleusercontent.com/-9FlsFmR5Nxg/UbNB3eOLatI/AAAAAAAAEL0/l99bMCwgdu8/w649-h387-no/ErroC%2523.PNG[/url]
O erro captado é esse:
System.Data.SqlClient.SqlException was caught HResult=-2146232060 Message=Must declare the scalar variable "@pCNPJ". Source=.Net SqlClient Data Provider ErrorCode=-2146232060 Class=15 LineNumber=1 Number=137 Procedure="" Server=(LocalDB)\v11.0 State=2 StackTrace: em System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) em System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) em System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) em System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) em System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) em System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite) em System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) em System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) em System.Data.SqlClient.SqlCommand.ExecuteNonQuery() em Model.ConnectionManager.executarComando(String p_strSql, List`1 p_obParams) na c:\Raiz\csharp\Vendas\Vendas\Model\ConnectionManager.cs:linha 92 InnerException:
Fiz upload do meu código no MediaFire... pelo jeito é algo com o CPF, já adianto que não fiz a validação do CPF conforme o autor do vídeo pede, mas nas regras de negócio, pedi apenas para não aceitar CPF nulos, não coloquei validação, então não estou entendendo o porque desse erro.
Vale ressaltar também, que fiz algumas inserções manuais no banco, e a parte de consulta está funcionando corretamente, só a inserção que me volta esse erro.
Se alguém puder me dar uma luz agradeço!
Segue o link do código:
http://www.mediafire.com/?pv5mv5o05ymfcf6
Cassio Lopes
Posts
08/06/2013
Pjava
public void insereTriagem(Int32 idrecurso, Int32 tipoDoc, string numDoc, Int32 ramo, string obrigacao, string nm_autor, string cpfAutor,
string observacao,DateTime dtcadastro, string tarefa, DateTime dtprazo, string nmArea, string outroDoc)
{
try
{
conexao.ConnectionString = ConfigurationManager.ConnectionStrings["connJuridico"].ConnectionString;
conexao.Open();
string sql = "insert into tbl_Triagem (id_recurso,id_tipo_documento,num_doc,id_ramo,obrigacao,nm_autor,cpf_autor,obs,dt_cadastro,tarefa,dt_prazo_tarefa,nm_area,outro_tipo_doc) values " +
"(@recurso,@tipo_doc,@numdoc,@idramo,@obrigacao,@nomeautor,@cpfautor,@observacao,@dtcadastro,@tarefa,@dtprazotarefa,@nmarea,@outrotipodoc)";
cmd.CommandText = sql;
cmd.Connection = conexao;
cmd.Parameters.AddWithValue("recurso", idrecurso);
cmd.Parameters.AddWithValue("tipo_doc", tipoDoc);
cmd.Parameters.AddWithValue("numdoc", numDoc);
cmd.Parameters.AddWithValue("idramo", ramo);
cmd.Parameters.AddWithValue("obrigacao", obrigacao);
cmd.Parameters.AddWithValue("nomeautor", nm_autor.Trim());
cmd.Parameters.AddWithValue("cpfautor", cpfAutor);
cmd.Parameters.AddWithValue("observacao", observacao);
cmd.Parameters.AddWithValue("dtcadastro", dtcadastro);
cmd.Parameters.AddWithValue("tarefa", tarefa);
cmd.Parameters.AddWithValue("dtprazotarefa", dtprazo);
cmd.Parameters.AddWithValue("nmarea", nmArea.Trim());
cmd.Parameters.AddWithValue("outrotipodoc", outroDoc);
cmd.ExecuteNonQuery();
}
finally
{
cmd.Dispose();
cmd = null;
conexao.Close();
conexao = null;
}
}
08/06/2013
Cassio Lopes
Abraços e obrigado!
08/06/2013
Pjava
public void InsereTipoDocumento(string nm_tipo_doc)
{
using (WFJuridicoEntities wfj = new WFJuridicoEntities())
{
try
{
tbl_Tipo_Documento tpd = new tbl_Tipo_Documento();
tpd.nm_tipo_documento = nm_tipo_doc.Trim();
wfj.tbl_Tipo_Documento.AddObject(tpd);
wfj.SaveChanges();
}
catch(Exception e)
{
Erro = "Erro na gravação do registro: " + e.Message;
}
}
}
10/06/2013
Joel Rodrigues
10/06/2013
Cassio Lopes
Grande abraço!
13/06/2013
Cassio Lopes
public bool incluir(Cliente p_objCliente) { bool blnRetorno = false; string strSql = "INSERT INTO Cliente (ID, Nome, DataCadastro, CNPJ) " + " VALUES (@pID, @pNome, @pDataCadastro, @pCNPJ)"; List<SqlParameter> objParams = new List<SqlParameter>(); objParams.Add(new SqlParameter("@pID", p_objCliente.ID)); objParams.Add(new SqlParameter("@pNome", p_objCliente.Nome)); objParams.Add(new SqlParameter("@pDataCadastro", p_objCliente.DataCadastro)); objParams.Add(new SqlParameter("@pCNPJ", p_objCliente.CNPJ)); blnRetorno = objConnManager.executarComando(strSql, objParams); return blnRetorno; }
Porém, no seguinte local, acabei colocando a informação errada, tinha colocado dessa forma:
objParams.Add(new SqlParameter("@CNPJ", p_objCliente.CNPJ));
Sem o "p" em @pCNPJ ai tinha lascado tudo kkk!
Valeu a todos que ajudaram, grande abraço, agora é seguir em frente...
13/06/2013
Joel Rodrigues
Sendo assim, estou marcando o tópico como Concluído.
Abraço.
Clique aqui para fazer login e interagir na Comunidade :)