如何将传递的值添加到数据库?

时间:2019-03-13 18:53:21

标签: c# asp.net webforms ado.net

我正在使用ASP.NET C#在WebApplication上进行练习

我已经创建了产品页面,在该页面中,我创建了带有来自数据库的数据的gridview,并且每行中都有一个名为Edit的按钮。您将使用该行数据转到更新页面。并将相应的值放在文本框中。

Image of Product Page

更新页面中有文本字段和下拉框,但是当我对数据进行更改并单击更新按钮时,数据不会在数据库中更新。

Image of Edit Page

Product.aspx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication5.Product
{
    public partial class Product1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string pid = GridView1.SelectedRow.Cells[0].Text;
            Response.Redirect("UpdateProduct.aspx?Product_ID=" + pid);
        }
    }
}

UpdateProduct.aspx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Configuration;

namespace WebApplication5.Product
{
    public partial class UpdateProduct : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
          String myquery = "Select * from Product where pro_id=" + Request.QueryString["Product_ID"];
            SqlConnection con = new SqlConnection(mycon);
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = myquery;
            cmd.Connection = con;
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataSet ds = new DataSet();
            da.Fill(ds);
            if (ds.Tables[0].Rows.Count > 0)
            {
                txtpid.Text = ds.Tables[0].Rows[0]["pro_id"].ToString();
                txtpname.Text = ds.Tables[0].Rows[0]["pro_name"].ToString();

                txtpprice.Text = ds.Tables[0].Rows[0]["pro_price"].ToString();
                txtpq.Text = ds.Tables[0].Rows[0]["pro_qty"].ToString();
            }
            con.Close();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            con1.Open();
            string sql ="UPDATE Product set pro_name='"+txtpname.Text.ToString()+"',cat_name='"+DropDownList1.SelectedValue.ToString()+"',pro_price='"+txtpprice.ToString()+"',pro_qty='"+txtpq.ToString()+"'where pro_id='"+txtpid.Text.ToString()+"'";
            SqlCommand cmd1 = new SqlCommand(sql,con1);
            cmd1.ExecuteNonQuery();
            Response.Write("Updated!");

        }

    }
}

2 个答案:

答案 0 :(得分:0)

请使用SQLcatch(sqlException ex)尝试使用catch块,并尝试使用属性的。您也可以在MSSQL中使用一个不错的工具,它被称为“ SQL Server Profiler”。

答案 1 :(得分:0)

检查以下内容:pro_qty ='“ + txtpq.ToString()+”'-给我空格---其中pro_id

您不能在filed和where子句之间留空格,在pro_qty和where之后留一个空格,因为您没有使用所有工具,所以查询不会执行,也不会看到错误输出。