Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Veronica Gravina

[Resolvido] The SqlParameterCollection only accepts non-null SqlP

Recommended Posts

Boa Tarde, nao estou conseguindo fazer um simples INSERT porque segundo o c# estou fazendo algo errado.

Alguem pode esclarescer algo por favor?

 

Este é meu codigo:

 

 

DateTime agora = DateTime.Now;
       String data = agora.ToString("MM-dd-yyyy");


       SqlConnection mySqlConnection = new SqlConnection("server=192.168.100.6,2433; database=Rastreamento;uid=webuser;pwd=web-user");
       mySqlConnection.Open();

       SqlCommand sqlCmd = mySqlConnection.CreateCommand();
       sqlCmd.CommandText = "INSERT INTO ras_mailmsg (" +
                            "  data_hora_msg,mensagem,placa_vei,destino,status,tipo" +
                            ") VALUES (" +
                            "  @cd_vei, @e_data_hora, @e_msg ,@eplaca_vei, @e_destino, @e_status,@e_tipo" +
                            ")";

      // sqlCmd.Parameters.Add("@cd_vei");
       sqlCmd.Parameters.Add("@e_data");
       sqlCmd.Parameters.Add("@e_msg");
       sqlCmd.Parameters.Add("@eplaca_vei");
       sqlCmd.Parameters.Add("@e_destino");
       sqlCmd.Parameters.Add("@e_status");
       sqlCmd.Parameters.Add("@e_tipo");


       //sqlCmd.Parameters["@cd_vei"].Value = 10;
       sqlCmd.Parameters["@e_data_hora"].Value = "2011-12-05  13:46:00:00";
       sqlCmd.Parameters["@e_msg"].Value = rddlCommands.Text;
       sqlCmd.Parameters["@eplaca_vei"].Value = rddlEquipments.Text;
       sqlCmd.Parameters["@e_destino"].Value = "veronikka@ariasat.com.br";
       sqlCmd.Parameters["@e_status"].Value = 0 ;
       sqlCmd.Parameters["@e_tipo"].Value = 5 ;


       sqlCmd.ExecuteNonQuery();

       mySqlConnection.Close();



Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao eu ja tinha visto os parametros, mas nao era isto.

ele continua dando erro na linha:

 

sqlCmd.Parameters.Add("@cd_vei");

 

Minha conexao:

 

SqlConnection mySqlConnection = new SqlConnection("server=192.168.100.6,2433; database=Rastreamento;uid=webuser;pwd=web-user");
       mySqlConnection.Open();

 

 

Minha String SQL:

SqlCommand sqlCmd = mySqlConnection.CreateCommand();
     sqlCmd.CommandText = "INSERT INTO Ras_mailmsg(codigo_vei,data_hora_msg,mensagem,placa_vei,destino,status,tipo)VALUES ('" + id_emb+  "', '" + strData + "', '" + strMensagem + "','" + nm_emb + "', '" + emailto + "', 1, 5)";

 

 

Passando os valores por paramentros:

 

 SqlCommand sqlCmd = mySqlConnection.CreateCommand();
      sqlCmd.CommandText = "INSERT INTO ras_mailmsg (" +
                            "  codigo_vei, data_hora_msg,mensagem,placa_vei,destino,status,tipo" +
                           ") VALUES (" +
                           "  @cd_vei, @e_data_hora, @e_msg ,@eplaca_vei, @e_destino, @e_status,@e_tipo" +
            //                ")";



       sqlCmd.Parameters.Add("@cd_vei");
       sqlCmd.Parameters.Add("@e_data");
       sqlCmd.Parameters.Add("@e_msg");
       sqlCmd.Parameters.Add("@eplaca_vei");
       sqlCmd.Parameters.Add("@e_destino");
       sqlCmd.Parameters.Add("@e_status");
       sqlCmd.Parameters.Add("@e_tipo");


       sqlCmd.Parameters["@cd_vei"].Value = "100483" ;
       sqlCmd.Parameters["@e_data_hora"].Value = strData;
       sqlCmd.Parameters["@e_msg"].Value = rddlCommands.Text;
       sqlCmd.Parameters["@eplaca_vei"].Value = rddlEquipments.Text;
       sqlCmd.Parameters["@e_destino"].Value = "veronikka@ariasat.com.br";
       sqlCmd.Parameters["@e_status"].Value = 1;
       sqlCmd.Parameters["@e_tipo"].Value = 5;

 

  sqlCmd.ExecuteNonQuery();
       mySqlConnection.Close();

Pela String direto utilizando variaveis locais sem passar parametros eu consigo inserir no banco, mas eu preciso usar uma stored procedure e nao estou conseguindo inserir .

Usando a mesma conexão e passando os valores por parametros ele da um erro de sql!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

sqlCmd.Parameters.Add(new SqlParameter("@cd_vei", "100483"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.