Ir ao conteúdo
  • Cadastre-se
juan vieira prado

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!