如何使用asp.net中的gridview更新表的单行.通过此代码,我的整个表将使用相同的值进行更新.请给我一些解决方案. [英] how to update a single row of the table withot using gridview in asp.net. By this code my whole table is getting updated with same values .please give me some solution.

查看:74
本文介绍了如何使用asp.net中的gridview更新表的单行.通过此代码,我的整个表将使用相同的值进行更新.请给我一些解决方案.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class UpdateProfile : System.Web.UI.Page
{
    SqlConnection conn = null;
    protected void Page_Load(object sender, EventArgs e)
    {
        
        if (!IsPostBack)
        {
     
            divPatientUpdate.Visible = false;
        }
    }

   

    protected void btnCancel_Click(object sender, EventArgs e)
    {
        btnCancel.Enabled = true;
    }


   
    protected void btnEdit_Click(object sender, EventArgs e)
    {

        if (btnEdit.Text == "Edit")
        {
            txtZip.Enabled = true;
            txtLastName.Enabled = true;
            txtFirstName.Enabled = true;
            txtEmail.Enabled = true;
            txtContactNo.Enabled = true;
            txtAge.Enabled = true;
            rbtnFemale.Enabled = true;
            rbtnMale.Enabled = true;
            cmbCity.Enabled = true;
            cmbState.Enabled = true;
            btnEdit.Text = "Save";
        }
        else
        {
            if (btnEdit.Text == "Save")
            {
                UpdateData();
            }
        }
    }

   

    private void UpdateData()
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;
        try
        {
            conn = new SqlConnection(ConfigurationManager.ConnectionStrings["PConnStr"].ConnectionString);
            string sql = "Update Patient set P_FName=@fname,P_LName=@lname,Age=@age, State=@state ,City=@city ,Email_id=@email ,Sex=@sex ,ContactNo=@contactno, Zip=@zip where P_FName in(select UserName from Login where P_LName=UserName)";
            conn.Open();
            cmd = new SqlCommand(sql, conn);
            cmd.Parameters.AddWithValue("@fname", txtFirstName.Text);
            cmd.Parameters.AddWithValue("@lname", txtLastName.Text);
            cmd.Parameters.AddWithValue("@age", txtAge.Text);
            cmd.Parameters.AddWithValue("@state", cmbState.Text);
            cmd.Parameters.AddWithValue("@city", cmbCity.Text);
            cmd.Parameters.AddWithValue("@email", txtEmail.Text);
            cmd.Parameters.AddWithValue("@contactno", txtContactNo.Text);
            cmd.Parameters.AddWithValue("@zip", txtZip.Text);
            if (rbtnFemale.Checked)
            {
                cmd.Parameters.AddWithValue("@sex", rbtnFemale.Text);
            }
            else
            {
                cmd.Parameters.AddWithValue("@sex", rbtnMale.Text);
            }
         
            cmd.ExecuteNonQuery();
           
            Label1.Visible = true;
            Label1.Text = "Updated Successfully";
        }

        catch (Exception ex)
        {

            Label1.Text = ex.ToString();
            Label1.Visible = true;
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }

    }

   
    protected void Button1_Click(object sender, EventArgs e)
    {
       
        SqlDataAdapter da = null;
        DataSet dsUser = null;
        SqlDataReader dr;
        try
        {
            conn = new SqlConnection(ConfigurationManager.ConnectionStrings["PConnStr"].ConnectionString);
            conn.Open();
            string sql = "Select * from Patient where P_FName=@fname AND P_LName=@lname";
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.AddWithValue("@fname",T1.Text);
            cmd.Parameters.AddWithValue("@lname",T2.Text);  
            dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                txtAge.Text = dr[3].ToString();
                txtContactNo.Text = dr[8].ToString();
                txtEmail.Text = dr[6].ToString();
                txtFirstName.Text = dr[1].ToString();
                txtLastName.Text = dr[2].ToString();
                txtZip.Text = dr[9].ToString();
                cmbState.Text = dr[4].ToString();
                cmbCity.Text = dr[5].ToString();
                string m = dr[7].ToString();
                
                if (m == "Male")
                {
                    rbtnMale.Checked = true;
                }
                else
                {
                    rbtnFemale.Checked = true;
                }
                divPatientUpdate.Visible = true;
                
                
            }
            else
            {
                Label3.Text = "This record does not exist";
                Label3.Visible = true;
            }


        }
        catch (Exception ex)
        {
            Label3.Text = ex.ToString();
            Label3.Visible = true;
        }
    }



    
}

推荐答案

在您的UPDATE语句中添加WHERE子句.

Add a WHERE clause to your UPDATE statement.

UPDATE ...
WHERE ID = @id



@id将是您要更新的行的ID或主键.



@id would be the id, or primary key, of the row you want to update.


这篇关于如何使用asp.net中的gridview更新表的单行.通过此代码,我的整个表将使用相同的值进行更新.请给我一些解决方案.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆