如何使用Web应用程序将来自2个不同源的数据插入到SQL Server中的2个不同表中?

时间:2015-08-23 16:44:15

标签: c# sql-server visual-studio-2012 web-applications

好的,基本上我已经在Visual Studio 2012 Ultimate中创建了Web应用程序,并且有一个页面具有这样的设计:

screenshot

我还在数据库中创建了3个表:

产品: [id] [name]

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

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

我需要的是当我点击按钮时需要从产品表中将Textbox中的文字插入[name],并将Listbox中的数字插入[{{1]来自拍卖表。我该怎么做,我需要2 bidvalue吗?

3 个答案:

答案 0 :(得分:0)

试试这个,然后致电

    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();
            }
        }
    }

答案 1 :(得分:0)

是的,基本上您尝试将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

从您的应用程序调用此存储过程,而不是进行两次不同的DB调用。

***省略了C#个代码示例以保持答案简单。您可以从SO中的C#调用存储过程的示例。

答案 2 :(得分:0)

由于您需要在Auctions表中使用ProductId,因此您需要在Products中进行插入,然后获取您在sql中创建的productId以将其添加到Auctions表中你拥有的bidValue。这可以使用一个调用存储过程的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