Van Droste
Van Droste

Reputation: 65

C# MySQL Error "Column count doesn't match value count at row 1"

//Query SQL
MySqlCommand command1 = new MySqlCommand("INSERT INTO Equipamento (equipamento, situacao, modelo, nr_serie, avaria, estado_equipamento, data, estado_reparacao, reincidente, ID)" +
"VALUES(@equipamento, @situacao @modelo, @nr_serie, @avaria, @estado_equipamento, @data, @estado_reparacao, @reincidente, @id)", mConn);
command1.Parameters.AddWithValue("@equipamento", comboequipamento.Text);
command1.Parameters.AddWithValue("@situacao", "Em diagnóstico");
command1.Parameters.AddWithValue("@modelo", tbmodelo.Text);
command1.Parameters.AddWithValue("@nr_serie", tbserie.Text);
command1.Parameters.AddWithValue("@avaria", tbavaria.Text);
command1.Parameters.AddWithValue("@estado_equipamento", tbestado.Text);
command1.Parameters.AddWithValue("@data", Convert.ToString(DateTime.Today.ToShortDateString()));
command1.Parameters.AddWithValue("@estado_reparacao", null);
command1.Parameters.AddWithValue("@reincidente", 1);
command1.Parameters.AddWithValue("@id", tbid.Text);


//Executa a Query SQL
command1.ExecuteNonQuery();
reincidentestr = true.ToString();
Atribuir_IDFichaHTML();

Can I get some help please? I'm getting error when the command1 is executed.

Column count doesn't match value count at row 1

Upvotes: 2

Views: 10341

Answers (1)

Gordon Linoff
Gordon Linoff

Reputation: 1270623

Your query is:

INSERT INTO Equipamento (equipamento, situacao, modelo, nr_serie, avaria, 
                         estado_equipamento, data, estado_reparacao, reincidente, ID)
        VALUES(@equipamento, @situacao @modelo, @nr_serie, @avaria,
               @estado_equipamento, @data, @estado_reparacao, @reincidente, @id)

You have fewer values than you need in the values statement, because you are missing a comma between @situacao and @modelo:

INSERT INTO Equipamento (equipamento, situacao, modelo, nr_serie, avaria, 
                         estado_equipamento, data, estado_reparacao, reincidente, ID)
        VALUES(@equipamento, @situacao, @modelo, @nr_serie, @avaria,
               @estado_equipamento, @data, @estado_reparacao, @reincidente, @id)

This is yet another example where good formatting would have prevented a problem.

Upvotes: 7

Related Questions