C#和MySql插入数据错误

时间:2015-07-17 16:19:12

标签: c# mysql

我的应用程序中存在问题,我正在开发。

我插入4个数据字段让我们将它们("Age""Gender""Name""Tel")称为MySQL数据库。 99%的时间它将100%工作然后偶尔我会得到一些奇怪的东西。

第1行将包含Age,Gender,“Null”,“Null”和第2行将具有“Null”,“Null”,Name,Tel等基本上它将一行数据插入2行。

以下是代码示例:

String constring = ConfigurationManager.ConnectionStrings["server"].ConnectionString;
            string Query = "insert into db.Table (Name , Surname , ID , Tel) 
values('" + this.textBox1.Text + "' , '" + this.textBox2.Text + "'  , 
'" + this.textBox6.Text + "'  , '" + this.textBox4.Text + "');";
            MySqlConnection conDataBase = new MySqlConnection(constring);
            MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
            MySqlDataReader myReader;
            conDataBase.Open();
            try
            {


                myReader = cmdDataBase.ExecuteReader();

                while (myReader.Read())
                {

                }
                conDataBase.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            MessageBox.Show("Cleint Details has been added to system");
        }

如果有人能想到这个原因,请帮忙。我确实检查了环境(网络连接等),但这些都很好。

2 个答案:

答案 0 :(得分:2)

文本框中可能存在影响insert语句的值。如果使用参数化语句会更好。 E.g:

string Query = "insert into db.Table (Name , Surname , ID , Tel) values(@param1, @param2 , @param3  , @param4);";

MySqlConnection conDataBase = new MySqlConnection(constring);
MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);

//Add paramter values
cmdDataBase.Parameters.AddWithValue("@param1", this.textBox1.Text);
cmdDataBase.Parameters.AddWithValue("@param2", this.textBox2.Text);
cmdDataBase.Parameters.AddWithValue("@param3", this.textBox6.Text);
cmdDataBase.Parameters.AddWithValue("@param4", this.textBox4.Text);

答案 1 :(得分:0)

我认为Reece的答案将解决您的问题,但我也建议放弃ExecuteReader()while{}循环。而只需使用cmdDataBase.ExecuteNonQuery();来触发插入。