C sharp:对象名称无效

时间:2017-02-16 10:59:50

标签: c# sql ado.net

这是我的代码,它一直告诉表格无效的名称! 我检查连接是否完美 我在sql mngmnt中执行了查询,它也工作得很好 试过dbo.patient和 我仍然得到这个错误

private void button1_Click(object sender, EventArgs e)
{
    string sexe_patient="";
    cnx conx = new cnx();

    string strRequete = "SELECT nom_patient,cin_patient FROM patient";

    try
    {
        //Execution de la requête
        myCommand = new SqlCommand(strRequete, cnx.myConnection);
        //Lecture des enregistrements à l’aide d’un SqlDataReader
        SqlDataReader mySqDataReader = myCommand.ExecuteReader();
        while (mySqDataReader.Read())
        {
            //On teste que le résultat n’est pas NULL afin d’éviter un plantage on moment du cast
            if (!(mySqDataReader["nom_patient"].Equals(nom_patient.Text)) && (!mySqDataReader["cin_patient"].Equals(cin_patient.Text)))
            {
                //récupéré le type de sexe
                if (sexe.Equals("femme"))
                {
                    sexe_patient ="femme";
                }
                else
                { sexe_patient = "homme"; }


                string add_patient = "INSERT INTO patient(cd_patient,cin_patient,nom_patient,date_naissance,sexe,adresse,profession,etat_physique) VALUES("+cd_patient.Text+","+cin_patient.Text+","+nom_patient.Text+","+date_naissance+","+sexe_patient+","+adresse.Text+","+profession.Text+","+etat_phy.Text+");";
                myCommand = new SqlCommand(add_patient, cnx.myConnection);


                MessageBox.Show("Patient has been added successfuly", "Halleljuah!!", MessageBoxButtons.OKCancel);
                break;
            }
            else
            {
                //alert
                MessageBox.Show("Il y a des champs vide", "erreur", MessageBoxButtons.OKCancel);
            }
        }
    }
    catch (Exception eMsg1)
    {
        //En cas d’erreur on affiche le message d’erreur
        //alert
        MessageBox.Show(eMsg1.Message, "erreur", MessageBoxButtons.OKCancel);
    }
    finally
    {
        //Quoiqu’il arrive on ferme proprement la connexion à la base
        cnx.myConnection.Close();
    }
}

1 个答案:

答案 0 :(得分:1)

尝试改变:

string add_patient = "INSERT INTO patient(cd_patient,cin_patient,nom_patient,date_naissance,sexe,adresse,profession,etat_physique) VALUES("+cd_patient.Text+","+cin_patient.Text+","+nom_patient.Text+","+date_naissance+","+sexe_patient+","+adresse.Text+","+profession.Text+","+etat_phy.Text+");"
myCommand = new SqlCommand(add_patient, cnx.myConnection);

使用:

string add_patient = "INSERT INTO patient(cd_patient,cin_patient,nom_patient,date_naissance,sexe,adresse,profession,etat_physique) VALUES(@cd_patient,@cin_patient,@nom_patient,@date_naissance,@sexe_patient,@adresse,@profession,@etat_physique)";
myCommand= new SqlCommand(add_patient, cnx.myConnection);
myCommand.Parameters.AddWithValue("@cd_patient", cd_patient.Text);
myCommand.Parameters.AddWithValue("@cin_patient", cin_patient.Text);
myCommand.Parameters.AddWithValue("@nom_patient", nom_patient.Text);
myCommand.Parameters.AddWithValue("@date_naissance", date_naissance);
myCommand.Parameters.AddWithValue("@sexe_patient", sexe_patient);
myCommand.Parameters.AddWithValue("@adresse", adresse.Text);
myCommand.Parameters.AddWithValue("@profession", profession.Text);
myCommand.Parameters.AddWithValue("@etat_physique", etat_phy.Text);