将数据发送到表格进行编辑,但始终发送第一条记录 [英] Sending data to Form for Editing But It Always send the First Record
问题描述
当我点击记录进行更新时。它总是将第一条记录发送到表单如果我单击带有最后一条记录的编辑按钮它也会将第一条记录发送到表单进行编辑
protected void GView_RowEditing(object sender, GridViewEditEventArgs e)
{
Form_Enable();
GView.EditIndex = e.NewEditIndex;
string conStr = ConfigurationManager.ConnectionStrings [CStringCRM]。ToString();
使用(SqlConnection conn = new SqlConnection(conStr))
使用(SqlCommand cmd = new SqlCommand(@SELECT * FROM UserInfo WHERE UID = UID,conn))
{
conn.Open();
using(SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if(dr.Read())
{
txtUID.Text = Convert。的ToString(DR [ UID]);
txtFName.Text = Convert.ToString(dr [UFName]); txtMName.Text = Convert.ToString(dr [UMName]);
txtLName.Text = Convert.ToString(dr [ULName]); txtUNic.Text = Convert.ToString(dr [UNic]);
txtUDob.Text = Convert.ToString(dr [UDOB]); txtUHPhone.Text = Convert.ToString(dr [UHPhone]);
txtUCNumber.Text = Convert.ToString(dr [UCPhone]); txtUEmail.Text = Convert.ToString(dr [UEmail]);
ddlUState.Text = Convert.ToString(dr [UState]);
txtUCity.Text = Convert.ToString(dr [UCity]);
txtUAddress.Text = Convert.ToString(dr [UAddress]);
// txtUComName.Enabled = true; txtUDesignation.Enabled = true; txtWPhone.Enabled = true; txtFaxNumber.Enabled = true; txtBCity.Enabled = true; txtCAddress.Enabled = true;
// txtECName.Enabled = true; txtECMNumber.Enabled = true; txtRelationship.Enabled = true; txtRHPhone.Enabled = true; txtECMNumber.Enabled = true;
//ddlUState.Text = Convert.ToString(dr [UState]);
DateTime GV_date = DateTime.Now;
txtUDob.Text = GV_date.ToShortDateString();
this.GView.Visible = false;
txtFName.Focus();
this.btnUpdate.Enabled = true; this.btnShow.Enabled = false; this.btnSave.Enabled = false; this.btnAdd.Enabled = false; this.btnCancel.Enabled = true; this.btnClear.Enabled = false;
}
}
}
//为外键分配值的结束业务信息和Emrg联系信息表
}
这是因为您使用SELECT * FROM table从数据库中选择每条记录。 然后调用.Read()读取第一条记录。
如Wes所说,你可以先从一些在线教程或书籍中获益更多。
试试这个并告诉我它是否不起作用
protected void GView_RowEditing(object sender,GridViewEditEventArgs e)
{
Form_Enable();
GView.EditIndex = e.NewEditIndex;
/在gridview中为单元格数组提供UID列的索引/
String cmdStr = String.Format(UserInfo Select * UserID ='{0}',UID);
string conStr = ConfigurationManager.ConnectionStrings [CStringCRM]。 ToString();
使用(SqlConnection conn = new SqlConnection(conStr))
使用(SqlCommand cmd = new SqlCommand(cmdStr,conn) )使用(SqlDataReader dr = cmd.ExecuteReader(Comman) dBehavior.CloseConnection))
{
if(dr.Read())
{
txtUID.Text = Convert.ToString(dr [UID]);
txtFName.Text = Convert.ToString(dr [UFName]); txtMName.Text = Convert.ToString(dr [UMName]);
txtLName.Text = Convert.ToString(dr [ULName]); txtUNic.Text = Convert.ToString(dr [UNic]);
txtUDob.Text = Convert.ToString(dr [UDOB]); txtUHPhone.Text = Convert.ToString(dr [UHPhone]);
txtUCNumber.Text = Convert.ToString(dr [UCPhone]); txtUEmail.Text = Convert.ToString(dr [UEmail]);
ddlUState.Text = Convert.ToString(dr [UState]);
txtUCity。 Text = Convert.ToString(dr [UCity]);
txtUAddress.Text = Convert.ToString(dr [UAddress]);
// txtUComName。 Enabled = true; txtUDesignation.Enabled = true; txtWPhone.Enabled = true; txtFaxNumber.Enabled = true; txtBCity.Enabled = true; txtCAddress.Enabled = true;
// txtECName.Enabled = true; txtECMNumber.Enabled = true; txtRelationship.Enabled = true; txtRHPhone.Enabled = true; txtECMNumber.Enabled = true;
//ddlUState.Text = Convert.ToString(dr [UState]);
DateTime GV_date = DateTime.Now;
txtUDob.Text = GV_date.ToShortDateString();
this.GView.Visible = false;
txtFName.Focus();
this.btnUpdate.Enabled = true; this.btnShow.Enabled = false; this.btnSave.Enabled = false; this.btnAdd.Enabled = false; this.btnCancel.Enabled = true; this.btnClear.Enabled = false;
}}
}
When i click on the record to update it. its always send the first record to the form if i click the edit button with the last record it also send the first record to form for editing
protected void GView_RowEditing(object sender, GridViewEditEventArgs e) { Form_Enable(); GView.EditIndex = e.NewEditIndex; string conStr = ConfigurationManager.ConnectionStrings["CStringCRM"].ToString(); using (SqlConnection conn = new SqlConnection(conStr)) using (SqlCommand cmd = new SqlCommand(@"SELECT * FROM UserInfo WHERE UID = UID", conn)) { conn.Open(); using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { if (dr.Read()) { txtUID.Text = Convert.ToString(dr["UID"]); txtFName.Text = Convert.ToString(dr["UFName"]); txtMName.Text = Convert.ToString(dr["UMName"]); txtLName.Text = Convert.ToString(dr["ULName"]); txtUNic.Text = Convert.ToString(dr["UNic"]); txtUDob.Text = Convert.ToString(dr["UDOB"]); txtUHPhone.Text = Convert.ToString(dr["UHPhone"]); txtUCNumber.Text = Convert.ToString(dr["UCPhone"]); txtUEmail.Text = Convert.ToString(dr["UEmail"]); ddlUState.Text = Convert.ToString(dr["UState"]); txtUCity.Text = Convert.ToString(dr["UCity"]); txtUAddress.Text = Convert.ToString(dr["UAddress"]); // txtUComName.Enabled = true; txtUDesignation.Enabled = true; txtWPhone.Enabled = true; txtFaxNumber.Enabled = true; txtBCity.Enabled = true; txtCAddress.Enabled = true; // txtECName.Enabled = true; txtECMNumber.Enabled = true; txtRelationship.Enabled = true; txtRHPhone.Enabled = true; txtECMNumber.Enabled = true; //ddlUState.Text = Convert.ToString(dr["UState"]); DateTime GV_date = DateTime.Now; txtUDob.Text = GV_date.ToShortDateString(); this.GView.Visible = false; txtFName.Focus(); this.btnUpdate.Enabled = true; this.btnShow.Enabled = false; this.btnSave.Enabled = false; this.btnAdd.Enabled = false; this.btnCancel.Enabled = true; this.btnClear.Enabled = false; } } }
// End of Assigning Value to the foreign key of the Business Info and Emrg Contact Info Tables
}
This is because you select every record from the db using "SELECT * FROM table." You then call .Read() which reads in the first record.
As Wes mentioned, you may benefit more from doing some online tutorials or books first.
Try this and let me know if it does not work
protected void GView_RowEditing(object sender, GridViewEditEventArgs e)
{
Form_Enable();
GView.EditIndex = e.NewEditIndex;
/provide the index of UID column in your gridview for cell array/
String UID= GView.Rows[e.NewEditIndex].Cells[1].Text;
String cmdStr = String.Format("Select * from UserInfo Where UserID = '{0}' ", UID);
string conStr = ConfigurationManager.ConnectionStrings["CStringCRM"].ToString();
using (SqlConnection conn = new SqlConnection(conStr))
using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
{
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if (dr.Read())
{
txtUID.Text = Convert.ToString(dr["UID"]);
txtFName.Text = Convert.ToString(dr["UFName"]); txtMName.Text = Convert.ToString(dr["UMName"]);
txtLName.Text = Convert.ToString(dr["ULName"]); txtUNic.Text = Convert.ToString(dr["UNic"]);
txtUDob.Text = Convert.ToString(dr["UDOB"]); txtUHPhone.Text = Convert.ToString(dr["UHPhone"]);
txtUCNumber.Text = Convert.ToString(dr["UCPhone"]); txtUEmail.Text = Convert.ToString(dr["UEmail"]);
ddlUState.Text = Convert.ToString(dr["UState"]);
txtUCity.Text = Convert.ToString(dr["UCity"]);
txtUAddress.Text = Convert.ToString(dr["UAddress"]);
// txtUComName.Enabled = true; txtUDesignation.Enabled = true; txtWPhone.Enabled = true; txtFaxNumber.Enabled = true; txtBCity.Enabled = true; txtCAddress.Enabled = true;
// txtECName.Enabled = true; txtECMNumber.Enabled = true; txtRelationship.Enabled = true; txtRHPhone.Enabled = true; txtECMNumber.Enabled = true;
//ddlUState.Text = Convert.ToString(dr["UState"]);
DateTime GV_date = DateTime.Now;
txtUDob.Text = GV_date.ToShortDateString();
this.GView.Visible = false;
txtFName.Focus();
this.btnUpdate.Enabled = true; this.btnShow.Enabled = false; this.btnSave.Enabled = false; this.btnAdd.Enabled = false; this.btnCancel.Enabled = true; this.btnClear.Enabled = false;
}}}
这篇关于将数据发送到表格进行编辑,但始终发送第一条记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!