每当我在数据库中插入数据时,它都会在数据库中保存一行额外的行



layout and db

if (!(string.IsNullOrEmpty(b.ToString())))
{
string connection = "server=127.0.0.1; database=accounts;user=root; password='';";
MySqlConnection conn = new MySqlConnection(connection);
conn.Open();
string SQL = "INSERT INTO payment_voucher (voucher_no, paid_to, date, account_cr, account_dr, description, student_emp_id, amount, total ) values ('" + label8.Text.ToString() + "','" + textBox1.Text + "', '" + dateTimePicker1.Value + "','" + a + "','" + b + "', '" + richTextBox1.Text + "', '" + textBox3.Text + "', '" + textBox4.Text + "', '" + label11.Text.ToString() + "');";
MySqlCommand command = new MySqlCommand(SQL, conn);
command.ExecuteNonQuery();
conn.Close();
}

我不知道为什么会这样。前端是C#。

该语句不会插入两行。

您有几件事要在这里检查:

  • 检查该代码是否被调用两次
  • 检查是否有其他类似的代码也被调用
  • 确保表上没有执行额外插入的触发器
  • 确保你没有一些奇怪的尝试/捕获/失败逻辑导致整个事情再次运行

最重要的是:

  • 运行 SQL 事件探查器跟踪以准确查看发送到数据库的内容

在企业管理器中使用原始SELECT查询检查表时,请查询表,并确保有一行。

上面的代码不会重复行,除非调用两次。

最新更新