Как добавить переданное значение в базу данных? - PullRequest
0 голосов
/ 13 марта 2019

Я занимаюсь веб-приложением в ASP.NET C #

Я создал Страница продукта . На этой странице я создал сетку с данными, поступающими из базы данных, а также есть кнопка «Редактировать» в каждой строке. Это приведет вас к Обновить страницу с этими данными строки. и он поместит значения в текстовое поле соответственно.

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 голосов
/ 14 марта 2019

Проверьте это: pro_qty = '"+ txtpq.ToString () +"' - дайте мне пробел --- где pro_id

У вас нет пробела между полем и предложением where, задайте один пробел после pro_qty и where, ваш запрос не выполняется и вы не видите вывод ошибок, потому что вы не используете все инструменты.

0 голосов
/ 13 марта 2019

Пожалуйста, попробуйте блок catch с SQLcatch (SqlException ex) и попробуйте использовать свойства. Также у вас есть хороший инструмент в MSSQL, он называется «SQL Server Profiler».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...