Usuário com melhor resposta
Inserindo dados no Banco Sql Server Compact com C#

Pergunta
-
Olá pessoal.
Estou criando uma aplicação em c# com banco de dados SQL SERVER COMPACT, realizei todo o codigo correto, porem por algum motivo não esta salvando.
Caso alguem possa me ajudar ficarei muito agradecido.
Segue abaixo codigo usado.
Arquivo Class:
private string conexao_Sql = @"Data Source=|DataDirectory|\Banco.sdf"; private string vsql = ""; SqlCeConnection conexao = null; //Conexão com o Banco de Dados #region Conexão com o Banco private bool conectar() { conexao = new SqlCeConnection(conexao_Sql); try { conexao.Open(); return true; } catch (Exception) { return false; } } private bool desconectar() { if (conexao.State != ConnectionState.Closed) { conexao.Close(); conexao.Dispose(); return true; } else { conexao.Dispose(); return false; } } #endregion /*######################### * Novo Fornecedor *######################### */ #region Novo Fornecedor public bool Novo_Fornecedor(ArrayList ArrayNovo) { vsql = "INSERT INTO FORNECEDORES ([NOME], ENDERECO, BAIRRO, MUNICIPIO, CEP, UF,EMAIL, TELEFONE, CELULAR, INSCRICAO, CNPJ, CONTATO, ENDERECO2, MUNICIPIO2, UF2, TELEFONE2, CELULAR2)" + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; SqlCeCommand command = null; if (this.conectar()) { try { command = new SqlCeCommand(vsql, conexao); command.Parameters.AddWithValue("@NOME", ArrayNovo[0]); command.Parameters.AddWithValue("@ENDERECO", ArrayNovo[1]); command.Parameters.AddWithValue("@BAIRRO", ArrayNovo[2]); command.Parameters.AddWithValue("@MUNICIPIO", ArrayNovo[3]); command.Parameters.AddWithValue("@CEP", ArrayNovo[4]); command.Parameters.AddWithValue("@UF", ArrayNovo[5]); command.Parameters.AddWithValue("@EMAIL", ArrayNovo[6]); command.Parameters.AddWithValue("@TELEFONE", ArrayNovo[7]); command.Parameters.AddWithValue("@CELULAR", ArrayNovo[8]); command.Parameters.AddWithValue("@INSCRICAO", ArrayNovo[9]); command.Parameters.AddWithValue("@CNPJ", ArrayNovo[10]); command.Parameters.AddWithValue("@CONTATO", ArrayNovo[11]); command.Parameters.AddWithValue("@ENDERECO2", ArrayNovo[12]); command.Parameters.AddWithValue("@MUNICIPIO2", ArrayNovo[13]); command.Parameters.AddWithValue("@UF2", ArrayNovo[14]); command.Parameters.AddWithValue("@TELEFONE2", ArrayNovo[15]); command.Parameters.AddWithValue("@CELULAR2", ArrayNovo[16]); command.ExecuteNonQuery(); return true; } catch (SqlCeException erro) { throw erro; } finally { this.desconectar(); } } else { return false; } } #endregion
e codigo no botão para cadastro.
Fornecedores New_Fornecedor = new Fornecedores(); try { ArrayList Array_Fornecedor = new ArrayList(); Array_Fornecedor.Add("Felipe"); Array_Fornecedor.Add("Rua 12"); Array_Fornecedor.Add("Meia Lua"); Array_Fornecedor.Add("Jacareí"); Array_Fornecedor.Add("12335-390"); Array_Fornecedor.Add("sp"); Array_Fornecedor.Add("felipe.ormedo@live.com"); Array_Fornecedor.Add("(12)3962-1733"); Array_Fornecedor.Add("(12)99790-1347"); Array_Fornecedor.Add("123454-33343"); Array_Fornecedor.Add("12.323.444\0001-01"); Array_Fornecedor.Add("Ormedo"); Array_Fornecedor.Add("Rua 4"); Array_Fornecedor.Add("Jaca"); Array_Fornecedor.Add("RJ"); Array_Fornecedor.Add("(12)3961-9535"); Array_Fornecedor.Add("(12)988243450"); if (New_Fornecedor.Novo_Fornecedor(Array_Fornecedor)) { MessageBox.Show("Fornecedor Cadastrado com Sucesso!!!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Fornecedor não Cadastrado!!!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch(Exception erro) { MessageBox.Show("Erro" + erro); }
muito obrigado pela ajuda...
Respostas
-
Sua query está errada coloque em vez de ? o nome dos campos com @ por ex @NOME e não ?(interrogacao), faça igual no sql server mesmo.
- Marcado como Resposta Giovani Cr sexta-feira, 11 de abril de 2014 18:49