[英]How to insert data in table in asp.net
現在,我發現了一種新的方法,僅需對其提供幫助。 基本上,當用戶單擊“添加到購物車”按鈕時,我將從product_desc.aspx頁將產品數據插入數據庫。 因此,當我運行以下代碼時,會收到此錯誤消息。 請幫助我解決這個問題,謝謝。 感謝幫助。
錯誤:
{“你調用的對象是空的。”}
我的Product_desc.aspx頁面
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:Repeater ID="d1" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<div style="height:300px; width:600px; border:1px solid black; margin-left:250px;">
<div style="height:300px; width:200px; float:left; border:1px solid black;">
<img src="data:image;base64,<%# Convert.ToBase64String((byte[])Eval("Image")) %>" />
</div>
<div style="height:300px; width:350px; float:left; border:1px solid black;">
Coffee Name:
<asp:Label ID="CoffeeNameLabel" runat="server" Text='<%# Eval("CoffeName") %>' />
<br />
Coffee Strength
<asp:Label ID="CoffeeStrengthLabel" runat="server" Text='<%# Eval("CoffeeStrength") %>' />
<br />
Coffee Grind
<asp:Label ID="CoffeeGrindLabel" runat="server" Text='<%# Eval("CoffeeGrind") %>' />
<br />
Origin
<asp:Label ID="CoffeeOriginLabel" runat="server" Text='<%# Eval("Origin") %>' />
<br />
Quantity
<asp:Label ID="CoffeeQuantityLabel" runat="server" Text='<%# Eval("Quantity") %>' />
<br />
Price
<asp:Label ID="CoffeePriceLabel" runat="server" Text='<%# Eval("Price") %>' />
</div>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
<br />
<asp:Button ID="b1" runat="server" Text="Add To Cart" onClick="b1_Click" />
</asp:Content>
Product_desc.aspx.cs頁面代碼
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["id"] == null)
{
Response.Redirect("ordercoffee.aspx");
}
else
{
id = Convert.ToInt32(Request.QueryString["id"].ToString());
cons.Open();
SqlCommand cmd = cons.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from coffeeshop where Id="+id+"";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
d1.DataSource = dt;
d1.DataBind();
cons.Close();
}
}
protected void b1_Click(object sender, EventArgs e)
{
//double p = double.Parse((string)ViewState["Price"]);
string cimg = ViewState["Image"].ToString();
string cname = ViewState["CoffeName"].ToString();
string cstrength = ViewState["CoffeeStrength"].ToString();
string cgrind = ViewState["CoffeeGrind"].ToString();
string corigin = ViewState["Origin"].ToString();
string cprice = ViewState["Price"].ToString();
string cquantity = ViewState["Quantity"].ToString();
//string s2 = System.Web.HttpContext.Current.User.Identity.Name;
string s1 = Request.QueryString["id"];
cons.Open();
SqlCommand cmd = cons.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO cart (CoffeeOrderId, CoffeeName, Strength, Grind, Origin, Quantity, Price, Image) VALUES(@orderid, @name, @strength, @grind, @origin, @quantity, @price, @image)";
cmd.Parameters.AddWithValue("@orderid", s1);
cmd.Parameters.AddWithValue("@name", cname);
cmd.Parameters.AddWithValue("@strength", cstrength);
cmd.Parameters.AddWithValue("@grind", cgrind);
cmd.Parameters.AddWithValue("@origin", corigin);
cmd.Parameters.AddWithValue("@quantity", cquantity);
cmd.Parameters.AddWithValue("@price", cprice);
cmd.Parameters.AddWithValue("@image", cimg);
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
cons.Close();
Response.Redirect("login.aspx");
}
首先根據需要將Sql Column定義為Binary
或VarBinary
數據類型
然后將圖像轉換為字節數組
byte[] imageByteArray;
using(var ms = new MemoryStream())
{
yourImage.Save(ms, yourImage.RawFormat);
imageByteArray = ms.ToArray();
}
現在你可以做
cmd.Parameters.AddWithValue("@image", imageByteArray);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.