如何使用此Sql代码段运行两个更新Sql查询?
下面提到的代码只在一个表中更新值....我想使用下面提到的代码更新两个不同表中的数据:
有人可以重新编写这段代码吗?
Try
Using conn = New SqlConnection(constr)
Using cmd = conn.CreateCommand()
conn.Open()
Dim sql As String =
"UPDATE a1_ticket
SET Ticket_no =@ticketNo,
BANK = @bank,
PAID = @paid,
BID = @bid
WHERE ITC = @ticketNo"
cmd.CommandText = sql
cmd.Parameters.AddWithValue("@bank", Literal20.Text)
cmd.Parameters.AddWithValue("@paid", Label1.Text)
cmd.Parameters.AddWithValue("@bid", Literal21.Text)
cmd.Parameters.AddWithValue("@ticketNo", Literal3.Text)
cmd.ExecuteNonQuery()
End Using
End Using
Catch ex As Exception
Response.Write(ex.Message)
End Try
答案 0 :(得分:3)
创建一个Stored Procedure
,用于更新两个表并使用 StoredProcedure命令执行...
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "UpdateTheTwoTables";
....
答案 1 :(得分:0)
修改SQL语句以更新两个表。
答案 2 :(得分:0)
使用存储过程是代码最明智的方法。如果你觉得这样做不舒服,我相信你可以这样做:
Try
Using conn = New SqlConnection(constr)
Using cmd = conn.CreateCommand()
conn.Open()
Dim sql As String = "UPDATE a1_ticket SET Ticket_no =@ticketNo, BANK = @bank, PAID = @paid, BID = @bid WHERE ITC = @ticketNo"
cmd.CommandText = sql
cmd.Parameters.AddWithValue("@bank", Literal20.Text)
cmd.Parameters.AddWithValue("@paid", Label1.Text)
cmd.Parameters.AddWithValue("@bid", Literal21.Text)
cmd.Parameters.AddWithValue("@ticketNo", Literal3.Text)
cmd.ExecuteNonQuery()
End Using
//
Using cmd = conn.CreateCommand()
conn.Open()
Dim sql As String = "UPDATE a2_ticket SET Ticket_no =@ticketNo, BANK = @bank, PAID = @paid, BID = @bid WHERE ITC = @ticketNo"
cmd.CommandText = sql
cmd.Parameters.AddWithValue("@bank", Literal20.Text)
cmd.Parameters.AddWithValue("@paid", Label1.Text)
cmd.Parameters.AddWithValue("@bid", Literal21.Text)
cmd.Parameters.AddWithValue("@ticketNo", Literal3.Text)
cmd.ExecuteNonQuery()
End Using
End Using
Catch ex As Exception
Response.Write(ex.Message)
End Try
这是我想说的内容的草图,你可能想在这里和那里改变一些东西,但关键是你可以一个接一个地更新你的两个表。在一个更新声明afaik中是不可能的。
答案 3 :(得分:0)
您也可以使用
Dim sql As String = @ "Query for first update;
Query for second update;";
答案 4 :(得分:0)
好吧,你没有说过关于第二张桌子或你发送的数据。我没有通过编译器来验证它,但我建议的概念是
你可以这样做:
void UpdateDB(String sql, String[][] params)
{
Try
{
SqlConnection conn = New SqlConnection(constr);
SqlCommand cmd = conn.CreateCommand();
conn.Open();
cmd.CommandText = sql;
for(int i=0; i<params.length; i++)
{
cmd.Parameters.AddWithValue(params[i,0] params[i,1]);
}
cmd.ExecuteNonQuery();
}
Catch (Exception ex)
{
Response.Write(ex.Message);
}
}
例如将SQL和参数发送给函数并让它完成所有工作..