我目前正在学习使用Visual Studio Express 2013 for Web编写ASP.NET网站,我计划开发一个在线购物网站。我已经启动了一个新网站,将一个SQL Server数据库(eCommerce.mdf
)添加到WebSite(在VS中),创建了两个表并使用以下查询插入了一行数据:
CREATE TABLE product (product_id char(4) PRIMARY KEY, product_name varchar(50), product_price money, product_stock int);
INSERT INTO product VALUES ('P001', 'Omega Seamaster Planet Ocean 600m', 68000, 7);
CREATE TABLE cart (customer_id char(4), product_id char(4), cart_quantity int);
然后我在网站中添加了一个新的网络表单Product.aspx
,并GridView
从product
表格中获取数据(它在源代码中显示SelectCommand="SELECT * FROM [product]"
)我的数据库。它运行正常但我想创建一个Button
,即添加到购物车,它可以执行INSERT INTO
函数向cart
表添加新行。我尝试使用以下代码:
在OnClick
html代码中添加Button
个事件
<asp:Button ID="Button1" runat="server" Text="Add to cart" OnClick="func1" />
在func1
之前添加<html xmlns="http://www.w3.org/1999/xhtml">
事件的脚本
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
Sub func1()
Dim cn As New SqlConnection("I dont know what I should type here!")
cn.Open()
Dim cmd = New SqlCommand("INSERT INTO cart VALUES ('C001', 'P001', 1);")
cmd.ExecuteNonQuery()
cn.Close()
End Sub
</script>
我不确定要传递给ConnectionString
的{{1}}参数,因为我已尝试过很多来自互联网的示例,但它们都不适用于我。
SqlConnection()
文件下的connectionStrings
,Webconfig
以外的ConnectionString
,DefaultConnection
,connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\eCommerce.mdf;Integrated Security=True"
。
此外,如果我使用An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll but was not handled in user code
事件而不是Button
事件,我在调试模式下点击OnClick
时会收到消息OnClientClick
。
所以我的问题是,我应该输入什么ConnectionString
参数以及我应该修改的其他任何内容以使func1
按预期工作?我也很欣赏任何其他方法。
谢谢。
答案 0 :(得分:2)
你可以这样试试。
Dim connectionString As String = ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString
Dim cn As New SqlConnection(connectionString)
cn.Open()
Dim cmd = New SqlCommand("INSERT INTO cart VALUES ('C001', 'P001', 1);", cn)
cmd.ExecuteNonQuery()
cn.Close()