C# 如何使用c将数据添加到mysql中的指定列中#
如何使用c#按钮将数据添加到mysql数据库表中的指定列单击,单击按钮后,它将传递给catch 这是我的添加按钮代码C# 如何使用c将数据添加到mysql中的指定列中#,c#,mysql,sql,C#,Mysql,Sql,如何使用c#按钮将数据添加到mysql数据库表中的指定列单击,单击按钮后,它将传递给catch 这是我的添加按钮代码 private void Button_add_Click(object sender, RoutedEventArgs e) { try { string Query = @"INSERT INTO `bcasdb`.`tbl_department`( `dep_id`,
private void Button_add_Click(object sender, RoutedEventArgs e)
{
try
{
string Query = @"INSERT INTO `bcasdb`.`tbl_department`(
`dep_id`,
`dep_name`,
`tbl_branch_branch_id`)
VALUES ("
+ this.depIDInput.Text + ",'"
+ this.depnameInput.Text + "','"
+ this.dep_branchIDInput.Text + "')";
//This is command class which will handle the query and connection object.
MySqlConnection conn = new MySqlConnection(BCASApp.DataModel.DB_CON.connection);
MySqlCommand cmd = new MySqlCommand(Query, conn);
MySqlDataReader MyReader;
conn.Open();
MyReader = cmd.ExecuteReader();// Here our query will be executed and data saved into the database.
conn.Close();
successmsgBox();
}
catch (Exception)
{
errormsgBox();
}
}
这是表中的所有列
INSERT INTO `bcasdb`.`tbl_student`
(`reg_id`,
`std_fname`,
`std_lname`,
`tbl_batch_batch_id`,
`gender`,
`dob`,
`email`,
`mobile`,
`contact_address`,
`home_address`,
`status`,
`course_id`,
`depart_id`,
`parent_name`,
`telephone`,
`nationality`,
`nic`,
`passport_no`,
`acadamic_qulification`,
`current_employement`,
`gce_ol`,
`gce_al`,
`birth_certifiacte`,
`copy_of_nic`,
`police_clerence`,
`tbl_studentcol`)
VALUES
我认为您的代码应该重写如下:
private void Button_add_Click(object sender, RoutedEventArgs e)
{
try
{
string Query = @"INSERT INTO `bcasdb`.`tbl_department`(
`dep_id`,
`dep_name`,
`tbl_branch_branch_id`)
VALUES (@depId, @depName, @branchId)";
//This is command class which will handle the query and connection object.
using (MySqlConnection conn = new MySqlConnection(BCASApp.DataModel.DB_CON.connection))
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand(Query, conn))
{
cmd.Parameters.Add("@depId", this.depIDInput.Text);
cmd.Parameters.Add("@dep_name", this.depnameInput.Text);
cmd.Parameters.Add("@branchId", this.dep_branchIDInput.Text);
cmd.ExecuteNonQuery();
}
}
successmsgBox();
}
catch (Exception)
{
errormsgBox();
}
}
您会遇到什么异常?您的表有多个列,如果所有列都设置为NOTNULL,则需要向表结构传递所有值或设置默认值。您正在插入正确的with if列,但表需要所有not null值。因此,您会收到错误消息-我想这可能是一个原因,因为您没有在问题中显示错误消息。我怀疑您可能需要
cmd.ExecuteNonQuery()代码>您应该始终使用。这种类型的字符串连接对攻击是开放的。由于INSERT
语句不返回任何数据,所以在这里使用ExecuteReader
是没有意义的。看起来您只需要ExecuteNonQuery
。和用于处理数据库连接。要获得正确答案,您需要告诉我们异常处理程序捕获的错误消息是什么(以及内部异常消息,如果有),好的,但为什么要执行Calar?正确的方法是返回行数的ExecuteOnQueryadded@Steve你可能是对的。在这种情况下,ExecuteOnQuery更好。我将修改答案。但这会出现一些错误,但这一次给了我解决问题的好主意,请参阅我的答案