Ir ao conteúdo
  • Cadastre-se

C# Problema ao inserir dados


Posts recomendados

eu estou tentando incluir dados no banco de dados e estou com um problema, estou utilizando o postgree

//função para preeencher o datagridview
private void preencheGrid()
        {
            dataGridView1.DataSource = null;
            string querry = @"select * from Celulares";
            NpgsqlCommand command = new NpgsqlCommand(querry, conn);
            NpgsqlDataReader dr = command.ExecuteReader();
            estTable.Rows.Clear();

            while (dr.Read())
            {
                int id = dr.GetInt32(0);
                string nome = dr.GetString(1);
                string so = dr.GetString(2);
                int memoria = dr.GetInt32(3);
                float preco = dr.GetFloat(4);
                string marca = dr.GetString(5);
                string modelo = dr.GetString(6);
                int estoque = dr.GetInt32(7);
                DataRow linha = estTable.NewRow();
                linha["ID"] = id;
                linha["Nome"] = nome;
                linha["SO"] = so;
                linha["Memoria"] = memoria;
                linha["Preço"] = preco;
                linha["Marca"] = marca;
                linha["Modelo"] = modelo;
                linha["Estoque"] = estoque;
                if (dr[8] is DBNull)
                {
                    linha["Foto"] = null;
                }
                else
                {
                    Byte[] imgArray = (byte[])dr[8];
                    var stream = new MemoryStream(imgArray);
                    linha["Foto"] = Image.FromStream(stream);
                }
                estTable.Rows.Add(linha);
            }

            dr.Close();
            dataGridView1.Refresh();
            Chosen_File = "";
            dataGridView1.DataSource = estTable;
            ((DataGridViewImageColumn)dataGridView1.Columns[8]).ImageLayout = DataGridViewImageCellLayout.Stretch;
            dataGridView1.Columns[8].Width = 50;
            dataGridView1.RowTemplate.Height = 50;
            dataGridView1.Width = 500;
        }

//botão que cadastra
private void btnCadas_Click(object sender, EventArgs e)
        {
            if (tbSO.Text.Trim().Length == 0 || tbNome.Text.Trim().Length == 0 || tbMen.Text.Trim().Length == 0 || tbPreco.Text.Trim().Length == 0 || tbMarca.Text.Trim().Length == 0 || tbModelo.Text.Trim().Length == 0 || tbEstoque.Text.Trim().Length == 0)
            {
                MessageBox.Show("Digite todos os dados.");
                return;
            }

            String query = @"insert into Celulares (nome, so, memoria, preco, marca, modelo, estoque, foto) values (@nome, @so, @memoria, @preco, @marca, @modelo, @estoque, @foto)";
            NpgsqlCommand command = new NpgsqlCommand(query, conn);
            command.Parameters.Add(new NpgsqlParameter("nome", NpgsqlDbType.Varchar));
            command.Parameters.Add(new NpgsqlParameter("so", NpgsqlDbType.Varchar));
            command.Parameters.Add(new NpgsqlParameter("memoria", NpgsqlDbType.Integer));
            command.Parameters.Add(new NpgsqlParameter("preco", NpgsqlDbType.Double));
            command.Parameters.Add(new NpgsqlParameter("marca", NpgsqlDbType.Varchar));
            command.Parameters.Add(new NpgsqlParameter("modelo", NpgsqlDbType.Varchar));
            command.Parameters.Add(new NpgsqlParameter("estoque", NpgsqlDbType.Integer));
            command.Parameters.Add(new NpgsqlParameter("foto", NpgsqlDbType.Oidvector));
            command.Parameters[0].Value = tbNome.Text;
            command.Parameters[1].Value = tbSO.Text;
            command.Parameters[2].Value = tbMen.Text;
            command.Parameters[3].Value = tbPreco.Text;
            command.Parameters[4].Value = tbMarca.Text;
            command.Parameters[5].Value = tbModelo.Text;
            command.Parameters[6].Value = tbEstoque.Text;
            if (Chosen_File == "")
            {
                command.Parameters[7].Value = null;
            }
            else
            {
                FileStream fs = new FileStream(Chosen_File, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(new BufferedStream(fs));
                Byte[] bytes = br.ReadBytes((Int32)fs.Length);
                fs.Close();
                command.Parameters[7].Value = bytes;
            }

            command.ExecuteNonQuery();
            preencheGrid();

            dataGridView1.CurrentCell = dataGridView1.Rows[estTable.Rows.Count - 1].Cells[0];
            dataGridView1.Rows[estTable.Rows.Count - 1].Selected = true;

            MessageBox.Show("Celular cadastrado.", "cadastro bem Sucedido",
            MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

na imagem mostra o problema que estou tendo, não consegui encontrar alguma forma de resolver isso 

 

CREATE TABLE Celulares(
    id_cel SERIAL,
    nome VARCHAR(50),
    so VARCHAR(50),
    memoria INTEGER,
    preco REAL,
    marca VARCHAR(50),
    modelo VARCHAR(50),
    estoque INTEGER,
    foto oid,
    PRIMARY KEY (id_cel)
);

 

tabela que estou usando

Sem título.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!