好的,基本上我已经在Visual Studio 2012 Ultimate中创建了Web应用程序,并且有一个页面具有这样的设计:
我还在数据库中创建了3个表:
产品:
[id
]
[name
]
拍卖:
[id
]
[productid
]
[lastbider
]
[bidvalue
]
[lastbid
]
用户:
[id
]
[name
]
[password
]
[bids
]
我需要的是当我点击按钮时需要从产品表中将Textbox
中的文字插入[name
],并将Listbox
中的数字插入[{{1]来自拍卖表。我该怎么做,我需要2 bidvalue
吗?
答案 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