ajuda urgente c# e mysql

genjet

Membro
boas pessoal eu estou a fazer um programa em c# de gesta de uma residencial mas cheguei a um ponto que tenho um problema
o meu problema é que e neste momento estou a fazer a inserçao de quartos quando insero os quarto ele da me um erro e o erro é no executenonquery.
o erro diz assim:there are more columms int the insert stadement then values specefied in the values clause. the number of values clause must match the number of columns specified in the insert stadement.
o codigo abaixo foi o que eu meti

Código:
{            cnn = new System.Data.SqlClient.SqlConnection();
            cnn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\pap proj\\unidadehoteleira\\unidadehoteleira\\residencialpap.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            //abre a conexao
            cnn.Open();
            if (controlo == 2)
            {
                this.Validate();




                codigodoquartoTextBox.Enabled = true;
                tipodequartoTextBox.Enabled = true;
                precoTextBox.Enabled = true;




                //define o objeto SqlCommand e a instruçao SQL
                int c = int.Parse(codigodoquartoTextBox.Text);
                float p = int.Parse(precoTextBox.Text);


                SqlCommand cmd = new SqlCommand("INSERT INTO Tipodequartos (Codigodoquarto,Tipodequarto,Preco) VALUES('" + c + tipodequartoTextBox.Text + p + "')", cnn);
                cmd.ExecuteScalar();
                this.tableAdapterManager.UpdateAll(this.residencialpapDataSet);
                MessageBox.Show("tipo de quarto inserido com sucesso!");


            }
            if (controlo == 1)
            {
                SqlCommand sql = new SqlCommand("UPDATE Tipodequartos SET Tipodequartos='" + tipodequartoTextBox + "' WHERE codigodoquarto=" + codigodoquartoTextBox.Text + "", cnn);
                sql.ExecuteNonQuery();
                MessageBox.Show("A sua alteração foi efectuada com sucesso!");
                tipodequartoTextBox.Enabled = false;
                precoTextBox.Enabled = false;
            }


            //fecha a conexao
            cnn.Close();
        }
desde ja obrigado pela ajuda
agradecia uma ajuda urgente por favor
 
estão a faltar-te as virgulas e as plicas da string

Código:
"INSERT INTO Tipodequartos (Codigodoquarto,Tipodequarto,Preco) VALUES(" + c + ",'" + tipodequartoTextBox.Text "'," + p + ")"

edit:
Código:
"UPDATE Tipodequartos SET Tipodequartos='" + tipodequartoTextBox[b].Text[/b] + "' WHERE codigodoquarto=" + Int32.Parse(codigodoquartoTextBox.Text)

Estou a assumir que o codigodoquarto é inteiro, tipodequarto texto e Preco float.
 
Última edição:
sim o tipo de dados é esse
mas agora tipo ja funciona mas esta com um problema é que tipo quando insiro o tipo de quarto ele diz que inseriu com mas quando fecho a aplicaçao e volto abrir o tipo de quarto que eu inserir nao esta la.
podias me ajudar por favor.
e obrigado desde ja pela tua ajuda
 
da me erro na consulta de sql do update diz cl«oluna invalida
esse update é para uma botao editar no caso dese quiser editar um tipo de quarto ja criado
obrigado pela ajuda
 
é sim
objectivo disto é que ao entrar no formulario tem la os tipos de quatros ja inseridos mas por exemplo no caso quer mudar por exemplo o codigo do quatro entao o utilizador pressiona o butao editar ele muda o que quer depois ao clicar no botao guardar ele da o erro
este foi o codigo que eu usei

if (controlo == 1) {
SqlCommand sql = new SqlCommand("UPDATE tipodequartos SET tipodequartos='" + tipodequartoTextBox.Text + "' WHERE codigodoquarto=" + Int32.Parse(codigodoquartoTextBox.Text), cnn);

sql.ExecuteNonQuery();
MessageBox.Show("A sua alteração foi efectuada com sucesso!");
tipodequartoTextBox.Enabled = false;
precoTextBox.Enabled = false;
}


//fecha a conexao
cnn.Close();
 
Back
Topo