Inquiridor
ERRO "Não existe mapeamento do tipo objeto " " para um provedor gerenciado de tipo nativo

Pergunta
-
Pessoal sou novo na programação, se alguém puder me ajudar agradeço, estou com esse erro e não sei como resolvê-lo. Ele aparece quando vou gravar dados de um form do meu projeto que ao não realizar o insert retorna essa mensagem de erro:
Erro: é necessário declarar a variável escalar @hora_inicio – esse erro aparece indicando a linha 117.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DesktopCSA { public partial class frmEntregacs : Form { public frmEntregacs() { InitializeComponent(); } string sql; string sql1; SqlConnection conn; SqlCommand cmd_entrega; SqlCommand cmd_entrega1; int x1, x2, x3, x4, x5, x6; private const string tabela = "dbo.ponto_de_entrega"; //Conexao con = new Conexao(); //SqlDataAdapter dAdapter = new SqlDataAdapter(); //DataSet en = new DataSet(); //string sql; //string sql1; //SqlConnection con; //SqlCommand cmd; //SqlCommand cmd1; string manha_inicio = "08h"; string manha_fim = "10h"; string tarde_inicio = "14h"; string tarde_fim = "17h"; string noite_inicio = "18h"; string noite_fim = "20h"; private void frmEntregacs_Load(object sender, EventArgs e) { cmbEstado.SelectedIndex = 0; cmbLogradouroEntrega.SelectedIndex = 0; cmbLogradouroEntrega.SelectedIndex = 0; cmbHoraEntrega.SelectedIndex = 0; } private void btnSalvar_Click(object sender, EventArgs e) { String connectionString = "Data Source=LAPTOP-ACNDH1GL\\THIAGO;Initial Catalog=CSA;Persist Security Info=True;User ID=thiago;Password=1234567"; String hora_entrega = cmbHoraEntrega.Text; SqlConnection conn = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand(sql, conn); SqlCommand cmd1_horafim = new SqlCommand(sql1, conn); //PERIODO DA MANHA if (cmbHoraEntrega.SelectedIndex == 0) { sql1 = "insert into compra_cota(hora_inicio, hora_final)" + "values (@hora_inicio, @hora_final)"; //conn = new SqlConnection(connectionString); //cmd = new SqlCommand(sql, conn); //cmd.CommandType = CommandType.Text; //cmd1_horafim.CommandType = CommandType.Text; //conn.Open(); conn.Open(); x1 = cmd_entrega.ExecuteNonQuery(); x2 = cmd1_horafim.ExecuteNonQuery(); //insert x2 sql1 = "insert into compra_cota(hora_inicio, hora_final)" + "values (@hora_inicio, @hora_final)"; conn = new SqlConnection(connectionString); cmd_entrega = new SqlCommand(sql, conn); cmd.CommandType = CommandType.Text; cmd1_horafim.CommandType = CommandType.Text; conn.Open(); x1 = cmd_entrega.ExecuteNonQuery(); x2 = cmd1_horafim.ExecuteNonQuery(); cmd_entrega.Parameters.AddWithValue("@nome_ponto", txtNomePonto.Text); cmd_entrega.Parameters.AddWithValue("@ddd", txtDDD1.Text); cmd_entrega.Parameters.AddWithValue("@telefone", txtTelPonto1); cmd_entrega.Parameters.AddWithValue("@hora_inicio", manha_inicio); cmd_entrega1.Parameters.AddWithValue("@hora_final", manha_fim); } //PERIODO DA TARDE if (cmbHoraEntrega.SelectedIndex == 1) { sql1 = "insert into compra_cota(hora_inicio, hora_final)" + "values (@hora_inicio, @hora_final)"; conn = new SqlConnection(connectionString); cmd_entrega = new SqlCommand(sql1, conn); cmd1_horafim = new SqlCommand(sql1, conn); cmd_entrega.CommandType = CommandType.Text; cmd1_horafim.CommandType = CommandType.Text; conn.Open(); x3 = cmd_entrega.ExecuteNonQuery(); x4 = cmd1_horafim.ExecuteNonQuery(); cmd_entrega.Parameters.AddWithValue("@nome_ponto", txtNomePonto.Text); cmd_entrega.Parameters.AddWithValue("@ddd", txtDDD1.Text); cmd_entrega.Parameters.AddWithValue("@telefone", txtTelPonto1); cmd_entrega.Parameters.AddWithValue("@hora_inicio", tarde_inicio); cmd1_horafim.Parameters.AddWithValue("@hora_final", tarde_fim); //conn.Open(); } //PERIODO DA NOITE if (cmbHoraEntrega.SelectedIndex == 2) { sql1 = "insert into compra_cota(hora_inicio, hora_final)" + "values (@hora_inicio, @hora_final)"; conn = new SqlConnection(connectionString); cmd_entrega = new SqlCommand(sql1, conn); cmd1_horafim = new SqlCommand(sql1, conn); cmd_entrega.CommandType = CommandType.Text; cmd1_horafim.CommandType = CommandType.Text; conn.Open(); cmd_entrega.Parameters.AddWithValue("@nome_ponto", txtNomePonto.Text); cmd_entrega.Parameters.AddWithValue("@ddd", txtDDD1.Text); cmd_entrega.Parameters.AddWithValue("@telefone", txtTelPonto1); cmd_entrega.Parameters.AddWithValue("@hora_inicio", noite_inicio); cmd1_horafim.Parameters.AddWithValue("@hora_final", noite_fim); //conn.Open(); x5 = cmd_entrega.ExecuteNonQuery(); x6 = cmd1_horafim.ExecuteNonQuery(); } try { int i = cmd_entrega.ExecuteNonQuery(); int j = cmd1_horafim.ExecuteNonQuery(); if (i > 0) ; if (j > 0) ; } catch (Exception ex) { MessageBox.Show("Erro: " + ex.ToString()); } finally { conn.Close(); Close(); } /*(Convert.ToInt16(cmbHoraEntrega) cmbHoraEntrega.SelectedIndex = 1)*/ sql = "insert into ponto_de_entrega(nome_ponto, ddd, telefone, ddd_2, telefone_2, logradouro, endereco, bairro, cidade, estado)" + "values (@nome_ponto, @ddd, @telefone, @ddd_2, @telefone_2, @logradouro, @endereco, @bairro, @cidade, @estado)"; sql1 = "insert into compra_cota(hora_inicial, hora_final)" + "values (@hora_inicial, @hora_final)"; //String connectionString = "Data Source=LAPTOP-ACNDH1GL\\THIAGO; Initial Catalog=CSA; Persist Security Info=True;User ID=thiago;Password=1234567"; SqlConnection con = new SqlConnection(connectionString); cmd = new SqlCommand(sql, con); cmd = new SqlCommand( sql1,con); cmd.Parameters.AddWithValue("@nome_ponto", txtNomePonto.Text); cmd.Parameters.AddWithValue("@ddd", txtDDD1.Text); cmd.Parameters.AddWithValue("@telefone", txtTelPonto1.Text); cmd.Parameters.AddWithValue("@ddd_2", txtDDD2.Text); cmd.Parameters.AddWithValue("@telefone_2", txtTelPonto2.Text); cmd.Parameters.AddWithValue("@logradouro", cmbLogradouroEntrega.Text); cmd.Parameters.AddWithValue("@endereco", txtEnderecoEntrega.Text); cmd.Parameters.AddWithValue("@bairro", txtBairroEntrega.Text); cmd.Parameters.AddWithValue("@cidade", txtCidadeEntrega.Text); cmd.Parameters.AddWithValue("@estado", cmbEstado.Text); cmd.CommandType = CommandType.Text; con.Open(); try { int i = cmd.ExecuteNonQuery(); if (i > 0) ; MessageBox.Show("Cadastro realizado com sucesso "); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.ToString()); } finally { con.Close(); Close(); } } } }
Todas as Respostas
-
Ola,
Você tem que declarar hora_inicio como você declarou os strings abaixo, mais se o compilador esta pedindo variável, você teria que suar var hora_inicio
string manha_inicio = "08h";
string manha_fim = "10h";
string tarde_inicio = "14h";
string tarde_fim = "17h";
string noite_inicio = "18h";
string noite_fim = "20h";
var hora_inicio < ---- Tipo assim