簡體   English   中英

如何使用Web應用程序將來自2個不同源的數據插入SQL Server中的2個不同表中?

[英]How to insert data from 2 different sources into 2 different tables in SQL server using Web application?

好的,基本上我已經在Visual Studio 2012 Ultimate中創建了Web應用程序,並且一頁具有這種設計:

截圖

我還在數據庫中創建了3個表:

產品:[ id ] [ name ]

拍賣:[ id ] [ productid ] [ lastbider ] [ bidvalue ] [ lastbid ]

用戶:[ id ] [ name ] [ password ] [ bids ]

我需要的是,當我單擊按鈕時,它需要將Textbox插入到products表中的[ name ]中,還要將Listbox數字插入到bidvalue表中的[ bidvalue ]中。 我該怎么做,我需要2個SqlCommands嗎?

試試這個,然后打電話

    InsertData("Insert into Products (Name) Values ('" + txtName.Text + "'); Insert Into Auctions (bidvalue) Values ('" + lstBidValues.SelectedValue + "');"); 

    public void InsertData(string query)
    {
        using (SqlConnection con = new SqlConnection("Your connection string here"))
        {
            if (con.State != ConnectionState.Open)
                con.Open();
            using (SqlCommand command = con.CreateCommand())
            {
                command.CommandText = query;
                command.ExecuteNonQuery();
            }
        }
    }

是的,基本上,您正在嘗試對兩個不同的表執行INSERT ,因此您需要執行兩個不同的INSERT操作。 雖然,我懷疑您可能想執行UPDATE但是除非您明確說明,否則不能肯定地說。

同樣,您可以使用存儲過程(例如

create procedure usp_addData(@name varchar(10), @bidvalue INT)
as
begin
//Perform first insert/update in products table using the @name parameter

//perform second insert/update in auctions table using the @bidvalue parameter
end

從您的應用程序中調用此存儲過程,而不是進行兩個不同的數據庫調用。

***省略了C#代碼示例,以使答案保持簡單。 您可以從SO中的C#中獲得許多調用存儲過程的示例。

由於您將需要在Auctions表中使用ProductId ,因此需要在Products中進行插入,然后獲取在sql中創建的productId ,以將其與所擁有的bidValue一起添加到Auctions表中。 這可以通過一個SqlCommand調用存儲過程來完成,該存儲過程如下圖所示。

BEGIN TRANSACTION

    INSERT INTO PRODUCTS VALUES('PRODUCT NAME')
    DECLARE @newProductId int = SELECT SCOPE_IDENTITY()

    INSERT INTO AUCTIONS(ProductId, lastBidder, bidValue, lastbid)
    VALUES (@newProductId, 'yourlastbidder, 'bidValue', 'lastbid')

END TRANSACTION

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM