c#和MySql插入数据错误
本文关键字:数据 错误 插入 MySql | 更新日期: 2023-09-27 18:03:10
我正在开发的应用程序中有一个问题。
I Insert 4 Data fieldlet ("Age"
, "Gender"
, "Name"
, "Tel"
) in到MySQL数据库。99%的情况下,它会100%工作,然后偶尔我会得到一些奇怪的东西。
第一行将有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");
}
如果有人能想到一个原因,请帮助。我确实检查了环境(网络连接等),但这些都很好。
文本框中可能存在影响插入语句的值。如果使用参数化语句会更好。例如:
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);
我认为Reece的答案将解决您的问题,但我也建议放弃ExecuteReader()
和while{}
循环。而只需使用cmdDataBase.ExecuteNonQuery();
来触发insert。