如何使用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.
本文介绍了如何使用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屋!
查看全文