如何使用一个按钮将值插入表并在另一个表中更新值?

小马

我有两个表,称为付款和约会,使用约会ID相互关联。对于我当前的代码,它只会在付款表中插入值。我想要实现的是,如果我以包括约会ID的形式键入值,然后单击“提交”,那么我刚刚输入的约会ID还将把该约会表aStatus的记录更新为已完成或正在等待。对于我的aStatus组合框,我在等待它并在item属性中将其填充。当前,我的代码只能插入付款表中。aStatus在另一个表即约会表中。

这是我插入的aStatus下拉列表代码。我希望它更新约会表思想的状态。那么,如何通过一个按钮将此代码与我的底部代码结合在一起?此代码将更新约会表中的aStatus,底部代码将在付款表中插入值。

string value = cbaStatus.SelectedItem == null ? "waiting" : cbaStatus.SelectedItem.ToString();
updateCmd.Parameters.AddWithValue("@cbaStatus", value);

我的表格

在此处输入图片说明

我的表和关系

在此处输入图片说明

遵循史蒂夫代码时出错

在此处输入图片说明

private void btnSubmit_Click(object sender, EventArgs e)
{
    int result = AddPaymentRecord();
    if (result > 0)
    {
        MessageBox.Show("Insert Successful");
        txtamount.Clear();
        txtamountPaid.Clear();
        txtappointmentID.Clear();
        txtamount.Focus();
    }
    else
    {
        MessageBox.Show("Insert Fail");
        txtamount.Clear();
        txtamountPaid.Clear();
        txtappointmentID.Clear();
        txtamount.Focus();
    }
}

private int AddPaymentRecord()
{
    int result = 0;

    string strConnectionString = ConfigurationManager.ConnectionStrings["sacpConnection"].ConnectionString;

    SqlConnection myConnect = new SqlConnection(strConnectionString);

    String strCommandText = "INSERT PAYMENT(amount, amountPaid, paymentDate, paymentType, appointmentID) "
        + " VALUES (@Newamount, @NewamountPaid,@NewpaymentDate, @NewpaymentType, @NewappointmentID)";

    SqlCommand updateCmd = new SqlCommand(strCommandText, myConnect);
    updateCmd.Parameters.AddWithValue("@Newamount", txtamount.Text);
    updateCmd.Parameters.AddWithValue("@NewamountPaid", txtamountPaid.Text);
    updateCmd.Parameters.AddWithValue("@NewpaymentDate", dtppaymentDate.Value);
    if (rbCash.Checked)
        updateCmd.Parameters.AddWithValue("@NewpaymentType", "Cash");
    else
        updateCmd.Parameters.AddWithValue("@NewpaymentType", "Credit Card");
    updateCmd.Parameters.AddWithValue("@NewappointmentID", txtappointmentID.Text);

    myConnect.Open();

    result = updateCmd.ExecuteNonQuery();

    myConnect.Close();
    return result;
}
史蒂夫

您有两个选择,将参数传递给存储过程,该存储过程将记录插入付款表并更新约会表,或者从代码中执行两个命令。

无论哪种方式,您都需要提供交易记录来避免存储付款记录(如果发生错误)并且无法更新适当的约会记录。

让我们尝试一下代码版本(请进行测试,因为我已经在此处动态编写了代码)

private int AddPaymentRecord()
{
    int result = 0;

    // The command text contains two statements separated by a semicolon
    String strCommandText = @"INSERT PAYMENT(amount, amountPaid, paymentDate, 
                              paymentType, appointmentID) VALUES (@Newamount,
                              @NewamountPaid,@NewpaymentDate,@NewpaymentType, 
                              @NewappointmentID); 
                             UPDATE Appointment SET aStatus=@cbaStatus
                             WHERE appointmentID = @NewappointmentID";

    string strConnectionString = ConfigurationManager.ConnectionStrings["sacpConnection"].ConnectionString;

    using(SqlConnection myConnect = new SqlConnection(strConnectionString))
    {
         myConnect.Open();

         // Start a transaction to be sure that the two commands are both executed
         SqlTransaction tran = myConnect.BeginTransaction();
         try
         {
           using(SqlCommand updateCmd = new SqlCommand(strCommandText, myConnect, tran))
           {
              updateCmd.Parameters.AddWithValue("@Newamount", txtamount.Text);
              updateCmd.Parameters.AddWithValue("@NewamountPaid", txtamountPaid.Text);
              updateCmd.Parameters.AddWithValue("@NewpaymentDate", dtppaymentDate.Value);
              if (rbCash.Checked)
                updateCmd.Parameters.AddWithValue("@NewpaymentType", "Cash");
              else
                updateCmd.Parameters.AddWithValue("@NewpaymentType", "Credit Card");
              updateCmd.Parameters.AddWithValue("@NewappointmentID", txtappointmentID.Text);
              string value = cbaStatus.SelectedItem == null ? 
                       "waiting" : cbaStatus.SelectedItem.ToString();

              // Add also the parameter required by the second batch statement
              updateCmd.Parameters.AddWithValue("@cbaStatus", value);
              result = updateCmd.ExecuteNonQuery();

              // If we reach this point we have updated both records. 
              // Commit the changes 
              tran.Commit();
           }
           return result;
         }
         catch
         {
            // Something wrong. rollback any changes and rethrow the exception
            // let the caller code handle this exception.
            tran.Rollback();
            throw;
         }
     }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将值从另一个表插入一个表

来自分类Dev

将 null 更新为一个值并插入到另一个表

来自分类Dev

使用MariaDB循环将一个表中的行与另一个表中的值插入

来自分类Dev

如何使用各自的字段将值从一个表插入到另一个表

来自分类Dev

将表值从一个表插入到另一个表

来自分类Dev

如何自动从另一个工作表中多次插入一个值?

来自分类Dev

如何根据另一个表中的值在表中插入值

来自分类Dev

如何将值插入另一个表的列中?

来自分类Dev

如何:将值插入到另一个表上的列中

来自分类Dev

如何使用PHP将一个SQL命令的返回值插入另一个表

来自分类Dev

MySQL:如果另一个表中的值为 NULL,如何将值插入到表中?

来自分类Dev

如何在C#中使用其他参数将值从一个表插入mysql中的另一个表

来自分类Dev

根据另一个表中的记录值将记录插入表中

来自分类Dev

根据另一个表中记录的值将记录插入表中

来自分类Dev

将一个表中的值插入到 SQL Server 中的另一个表中

来自分类Dev

将一个表中的不同值插入到另一个表中

来自分类Dev

如果另一个单元格具有特定值,如何制作一个按钮,该按钮仅将值从一个表发送到另一个表中的行

来自分类Dev

多次将所选值从另一个表插入到表中

来自分类Dev

使用默认值将数据从一个表插入到另一个表

来自分类Dev

更新一个表中另一个表中的值

来自分类Dev

如何基于对另一个表的选择在表的列中插入值

来自分类Dev

如何使用join根据另一个表更新mysql中的多个值

来自分类Dev

如何将另一个表中的值插入到表中 - mysql 内连接

来自分类Dev

如何使用 MySql 使用另一个表中的值更新两个表上的值

来自分类Dev

MYSQL使用2列将一个表的值更新为另一个表限定的值

来自分类Dev

在mysql中按结果更新/插入另一个表的组的列值

来自分类Dev

如何在SQL Server中使用另一个表上的值的条件来更新表中的值

来自分类Dev

使用另一个表中的值更新ms-access表中的值

来自分类Dev

T-SQL仅使用变量中的值而不是一列将行的副本从一个表插入到另一个表

Related 相关文章

  1. 1

    如何将值从另一个表插入一个表

  2. 2

    将 null 更新为一个值并插入到另一个表

  3. 3

    使用MariaDB循环将一个表中的行与另一个表中的值插入

  4. 4

    如何使用各自的字段将值从一个表插入到另一个表

  5. 5

    将表值从一个表插入到另一个表

  6. 6

    如何自动从另一个工作表中多次插入一个值?

  7. 7

    如何根据另一个表中的值在表中插入值

  8. 8

    如何将值插入另一个表的列中?

  9. 9

    如何:将值插入到另一个表上的列中

  10. 10

    如何使用PHP将一个SQL命令的返回值插入另一个表

  11. 11

    MySQL:如果另一个表中的值为 NULL,如何将值插入到表中?

  12. 12

    如何在C#中使用其他参数将值从一个表插入mysql中的另一个表

  13. 13

    根据另一个表中的记录值将记录插入表中

  14. 14

    根据另一个表中记录的值将记录插入表中

  15. 15

    将一个表中的值插入到 SQL Server 中的另一个表中

  16. 16

    将一个表中的不同值插入到另一个表中

  17. 17

    如果另一个单元格具有特定值,如何制作一个按钮,该按钮仅将值从一个表发送到另一个表中的行

  18. 18

    多次将所选值从另一个表插入到表中

  19. 19

    使用默认值将数据从一个表插入到另一个表

  20. 20

    更新一个表中另一个表中的值

  21. 21

    如何基于对另一个表的选择在表的列中插入值

  22. 22

    如何使用join根据另一个表更新mysql中的多个值

  23. 23

    如何将另一个表中的值插入到表中 - mysql 内连接

  24. 24

    如何使用 MySql 使用另一个表中的值更新两个表上的值

  25. 25

    MYSQL使用2列将一个表的值更新为另一个表限定的值

  26. 26

    在mysql中按结果更新/插入另一个表的组的列值

  27. 27

    如何在SQL Server中使用另一个表上的值的条件来更新表中的值

  28. 28

    使用另一个表中的值更新ms-access表中的值

  29. 29

    T-SQL仅使用变量中的值而不是一列将行的副本从一个表插入到另一个表

热门标签

归档