本文介绍了按钮点击不更新数据库,查询正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有管理页面(包含选项卡,在编辑选项卡中单击确定然后导航到另一个页面(EditUser.aspx))。但是在编辑页面中,当我单击确定按钮时它不更新数据库,之前的值仅显示在控件中。 这里是管理员设计师。< pre lang = c# > 编辑成员 < / td > < / tr > < tr>< td align = right colspan = 2>会员ID:< / td > < td>< asp:TextBox ID = txtememid runat = server > < / asp:TextBox > < / td > < / tr > < tr>< td align = right colspan = 2>卡ID:< / td > < td> < asp:TextBox ID = txtecardid runat = server Width = 112px > < / asp:TextBox > < / td > < / tr > < tr> < TD> < asp:按钮ID = btneok runat = server Text = 确定 OnClick = btneok_Click Font-Bold = True字体名称= Times New Roman Width = 87px /> < / td > < TD> < asp:按钮ID = btnecancel runat = server Text = 取消 Width = 96px OnClientClick = this.form.reset(); return false; /> < / td > ; < / tr > < / 表格 > < / asp:Panel > 和管理员编辑后面的鳕鱼是:< pre lang = c# > 受保护 void btneok_Click( object sender,EventArgs e) { if (txtememid.Text!= || txtecardid.Text!= ) Response.Redirect( 〜/ EditUser.aspx?memberid = + txtememid.Text.Replace( &, %26 )+ & cardid = + txtecardid.Text.Replace ( &, %26)); else { Response.Write( < script type ='text / javascript'>); Response.Write( alert('请输入成员ID或CARD ID');); Response.Write( < / script>); } } 和我的Edituser.aspx是:< pre lang = c# > <%@ Page 语言 = C# AutoEventWireup = true CodeBehind = EditUser.aspx.cs 继承 = Online_Billing_Sys tem.EditUser %> <%@ 注册 命名空间 = AjaxControlToolkit 汇编 = AjaxControlToolkit tagPrefix = ajax %> < !DOCTYPE html PUBLIC - // W3C // DTD XHTML 1.0 Transitional // EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd > < html xmlns = http://www.w3.org/1999/xhtml > < head runat = server > < title > < / title > < / head > < 正文 > < 表格 id = form1 runat = 服务器 > < ajax:ToolkitScriptManager ID = scriptmanager1 runat = server > < / ajax:ToolkitScriptManager > < div > < 表 align = center 样式 = width:651px > < tr > < td > < / td > < td align = right > < / td > < ; td align = center > 编辑Memb呃 < / td > < / tr > < tr > < td > < / td > < td align = right > 会员ID:< / td > < td > < asp:TextBox ID = txteditmemid runat = server > < ; / asp:TextBox > < ; / td > < td > < / td > < / tr > < tr > < td > < / td > < td align = right > 卡片ID:< / td > < td > < asp:TextBox ID = txteditcardid runat = 服务器 > < / asp:TextBox > < / td > < td > < / td > < / tr > < tr > < td > < / td > < td align = right > 名称:< / td > < td > ; < asp:TextBox ID = txteditname runat = server > < / asp:TextBox > < / td > < td > < / td > < / tr > < tr > < td > < / td > < td align = right > 成员资格日期:< / td > < td > < asp:TextBox ID = txteditdate runat = server > < / asp:TextBox > < / td > < td > < ajax:CalendarExtender ID = calendar1 TargetControlID = txteditdate runat = server PopupButtonID = calendar 格式 = yyyy-MM-dd 已启用 = True > < / ajax:CalendarExtender > < / td > < td class = style1 > < / td > < / tr > < tr > < td > < ; / td > < td align = 右 > 期初余额:< / td > < td > < asp:TextBox ID = txteditopenbal runat = server > < / asp:TextBox > < / td > < td > < / td > < / tr > < tr > < td > < / td > < td align = right > 电话号码:< / td > < td > < asp:TextBox ID = txteditphone runat = 服务器 > < / asp:TextBox > < / td > < td > < / td > < / tr > < tr > < td > < / td > < td align = right > 地址:< / td > < td align = left & gt; < asp:TextBox ID = txteditaddress runat=\"server\"></asp:TextBox></td><td>  </td></tr><tr><td></td><td align=\"right\">Password:</td><td alig n=\"left\"> <asp:TextBox ID=\"txteditpwd\" runat=\"server\" TextMode=\"Password\"></asp:TextBox></td><td>  </td></tr><tr><td></td><td align=\"right\">Conf irm Password</td><td align=\"left\"> <asp:TextBox ID=\"txteditconfirmpwd\" runat=\"server\" TextMode=\"Password\"></asp:TextBox></td><td>  </td><td> </td></tr><tr><td></td><td></td><td align=\"left\" > <asp:Button ID=\"btneditok\" runat=\"server\" Text=\"OK\" onclick=\"btneditok_Click\"/> <asp:Button ID=\"btneditcancel\" runat=\"server\" Text=\"Cancel\" OnClientClick=\"this.form.reset();return false;\" /></td></tr ></table> </div> </form> </body> </html> and code behind for Edituser is:<pre lang=\"c#\">using System.Web; 使用 System.Web.UI; 使用 System.Web.UI.WebControls; 使用 System.Web.Configuration; 使用 MySql.Data.MySqlClient; 使用 System.Text.RegularExpressions; 使用 System.Text; namespace Online_Billing_System { public partial class EditUser : System.Web.UI.Page { String ConnectionString = WebConfigurationManager.ConnectionStrings[\"myConnectionString\"].ToString(); protected void Page_Load(object sender, EventArgs e) { String memberid = Request.QueryString[\"memberid\"]; String cardid = Request.QueryString[\"cardid\"]; using (MySqlConnection con = new MySqlConnection(ConnectionString)) { String query = \"select member_id,card_id,name,date_of_membership,opening_balance,phone_number,address,password,confirm_password from admin where member_id='\" + memberid + \"' OR card_id='\" + cardid + \"' \"; MySqlCommand command = new MySqlCommand(query,con); con.Open(); using (MySqlDataReader rdr = command.ExecuteReader()) { if (rdr.Read()) { txteditmemid.Text = rdr[\"member_id\"].ToString(); txteditcardid.Text = rdr[\"card_id\"].ToString(); txteditname.Text = rdr[\"name\"].ToString(); String date1 = rdr[\"date_of_membership\"].ToString(); String[] date = Regex.Split(date1, \"[/ ]\"); StringBuilder sb = new StringBuilder(); sb.Append(date[2]); sb.Append(\"-\"); sb.Append(date[0]); sb.Append(\"-\"); sb.Append(date[1]); txteditdate.Text = sb.ToString(); ; txteditopenbal.Text = rdr[\"opening_balance\"].ToString(); txteditphone.Text = rdr[\"phone_number\"].ToString(); txteditaddress.Text = rdr[\"address\"].ToString(); txteditpwd.Text = rdr[\"password\"].ToString(); txteditconfirmpwd.Text = rdr[\"confirm_password\"].ToString(); } } // String query1 = \"SELECT CAST(`date_of_membership` AS DATE) AS date_of_membership FROM admin where member_id='\" + memberid + \"' OR card_id='\" + cardid + \"' \"; // MySqlCommand com = new MySqlCommand(query1, con); // using(MySqlDataReader rdr=com.ExecuteReader()) // { if(rdr.Read()) //txteditdate.Text = rdr[\"date_of_membership\"].ToString(; // } } } protected void btneditok_Click(object sender, EventArgs e) { String memberid = Request.QueryString[\"memberid\"]; String cardid = Request.QueryString[\"cardid\"]; using (MySqlConnection con = new MySqlConnection(ConnectionString)) { String query = \"update admin set member_id=@memberid,card_id=@cardid,name=@name,date_of_membership=@date,opening_balance=@balance,phone_number=@phone,address=@address,password=@pwd,confirm_password=@confirmpwd where member_id='\" + memberid + \"' OR card_id='\" + cardid + \"' \"; MySqlCommand command = new MySqlCommand(query, con); command.Parameters.AddWithValue(\"@memberid\", txteditmemid.Text); command.Parameters.AddWithValue(\"@cardid\", txteditcardid.Text); command.Parameters.AddWithValue(\"@name\", txteditname.Text); command.Parameters.AddWithValue(\"@date\", txteditdate.Text); command.Parameters.AddWithValue(\"@balance\", txteditopenbal.Text); command.Parameters.AddWithValue(\"@phone\", txteditphone.Text); command.Parameters.AddWithValue(\"@address\", txteditaddress.Text); command.Parameters.AddWithValue(\"@pwd\", txteditpwd.Text); command.Parameters.AddWithValue(\"@confirmpwd\", txteditconfirmpwd.Text); con.Open(); command.ExecuteNonQuery(); } } } } 解决方案 Add IsPostBack in your page_Load event protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { String memberid = Request.QueryString[\"memberid\"]; String cardid = Request.QueryString[\"cardid\"]; using (MySqlConnection con = new MySqlConnection(ConnectionString)) { String query = \"select member_id,card_id,name,date_of_membership,opening_balance,phone_number,address,password,confirm_password from admin where member_id='\" + memberid + \"' OR card_id='\" + cardid + \"' \"; MySqlCommand command = new MySqlCommand(query,con); con.Open(); using (MySqlDataReader rdr = command.ExecuteReader()) { if (rdr.Read()) { txteditmemid.Text = rdr[\"member_id\"].ToString(); txteditcardid.Text = rdr[\"card_id\"].ToString(); txteditname.Text = rdr[\"name\"].ToString(); String date1 = rdr[\"date_of_membership\"].ToString(); String[] date = Regex.Split(date1, \"[/ ]\"); StringBuilder sb = new StringBuilder(); sb.Append(date[2]); sb.Append(\"-\"); sb.Append(date[0]); sb.Append(\"-\"); sb.Append(date[1]); txteditdate.Text = sb.ToString(); ; txteditopenbal.Text = rdr[\"opening_balance\"].ToString(); txteditphone.Text = rdr[\"phone_number\"].ToString(); txteditaddress.Text = rdr[\"address\"].ToString(); txteditpwd.Text = rdr[\"password\"].ToString(); txteditconfirmpwd.Text = rdr[\"confirm_password\"].ToString(); } } // String query1 = \"SELECT CAST(`date_of_membership` AS DATE) AS date_of_membership FROM admin where member_id='\" + memberid + \"' OR card_id='\" + cardid + \"' \"; // MySqlCommand com = new MySqlCommand(query1, con); // using(MySqlDataReader rdr=com.ExecuteReader()) // { if(rdr.Read()) //txteditdate.Text = rdr[\"date_of_membership\"].ToString(; // } } } } after adding ispostback plz debug your code working or not? if you not working comment me...!i have admin page (consists tabs , in edit tab clicked on OK then navigated to another page (EditUser.aspx)).But in edit page when i click OK button it's not updating the database ,and previous values are only showing in controls.here is the admin designer.<pre lang="c#">Edit Member </td></tr> <tr><td align="right" colspan="2">Member ID: </td> <td><asp:TextBox ID="txtememid" runat="server"></asp:TextBox>   </td></tr> <tr><td align="right" colspan="2">Card ID: </td> <td> <asp:TextBox ID="txtecardid" runat="server" Width="112px"></asp:TextBox>   </td></tr> <tr> <td> <asp:Button ID="btneok" runat="server" Text="OK" OnClick="btneok_Click" Font-Bold="True" Font-Names="Times New Roman" Width="87px"/>   </td><td> <asp:Button ID="btnecancel" runat="server" Text="Cancel" Width="96px" OnClientClick="this.form.reset();return false;" /></td></tr></table></asp:Panel>and cod behind for admin edit is:<pre lang="c#"> protected void btneok_Click(object sender, EventArgs e) { if (txtememid.Text != "" || txtecardid.Text != "") Response.Redirect("~/EditUser.aspx?memberid=" + txtememid.Text.Replace("&", "%26") + "&cardid=" + txtecardid.Text.Replace("&", "%26")); else { Response.Write("<script type='text/javascript'>"); Response.Write("alert('PLEASE ENTER EITHER MEMBER ID or CARD ID');"); Response.Write("</script>"); } }and my Edituser.aspx is:<pre lang="c#"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EditUser.aspx.cs" Inherits="Online_Billing_System.EditUser" %><%@ Register Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" tagPrefix="ajax" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <ajax:ToolkitScriptManager ID="scriptmanager1" runat="server"></ajax:ToolkitScriptManager> <div> <table align="center" style="width: 651px"><tr><td></td><td align="right" ></td><td align="center">Edit Member </td></tr><tr><td></td><td align="right" >Member ID: </td><td> <asp:TextBox ID="txteditmemid" runat="server"></asp:TextBox></td><td> </td></tr><tr><td></td><td align="right" >Card ID: </td><td> <asp:TextBox ID="txteditcardid" runat="server" ></asp:TextBox></td><td>  </td></tr><tr><td></td><td align="right">Name: </td><td> <asp:TextBox ID="txteditname" runat="server"></asp:TextBox></td><td>  </td></tr><tr><td></td><td align="right">Date Of Membership: </td><td><asp:TextBox ID="txteditdate" runat="server" ></asp:TextBox> </td><td> <ajax:CalendarExtender ID="calendar1" TargetControlID="txteditdate" runat="server" PopupButtonID="calendar" Format="yyyy-MM-dd" Enabled="True"></ajax:CalendarExtender></td> <td class="style1">  </td></tr><tr><td></td><td align="right">Opening Balance: </td><td> <asp:TextBox ID="txteditopenbal" runat="server"></asp:TextBox></td><td>  </td></tr><tr><td></td><td align="right" >Phone No: </td><td> <asp:TextBox ID="txteditphone" runat="server"></asp:TextBox></td><td>  </td></tr><tr><td></td><td align="right" >Address: </td><td align="left"> <asp:TextBox ID="txteditaddress" runat="server"></asp:TextBox></td><td>  </td></tr><tr><td></td><td align="right">Password:</td><td align="left"> <asp:TextBox ID="txteditpwd" runat="server" TextMode="Password"></asp:TextBox></td><td>  </td></tr><tr><td></td><td align="right">Confirm Password</td><td align="left"> <asp:TextBox ID="txteditconfirmpwd" runat="server" TextMode="Password"></asp:TextBox></td><td>  </td><td> </td></tr><tr><td></td><td></td><td align="left" > <asp:Button ID="btneditok" runat="server" Text="OK" onclick="btneditok_Click"/> <asp:Button ID="btneditcancel" runat="server" Text="Cancel" OnClientClick="this.form.reset();return false;" /></td></tr></table> </div> </form></body></html>and code behind for Edituser is:<pre lang="c#">using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.Configuration;using MySql.Data.MySqlClient;using System.Text.RegularExpressions;using System.Text;namespace Online_Billing_System{ public partial class EditUser : System.Web.UI.Page { String ConnectionString = WebConfigurationManager.ConnectionStrings["myConnectionString"].ToString(); protected void Page_Load(object sender, EventArgs e) { String memberid = Request.QueryString["memberid"]; String cardid = Request.QueryString["cardid"]; using (MySqlConnection con = new MySqlConnection(ConnectionString)) { String query = "select member_id,card_id,name,date_of_membership,opening_balance,phone_number,address,password,confirm_password from admin where member_id='" + memberid + "' OR card_id='" + cardid + "' "; MySqlCommand command = new MySqlCommand(query,con); con.Open(); using (MySqlDataReader rdr = command.ExecuteReader()) { if (rdr.Read()) { txteditmemid.Text = rdr["member_id"].ToString(); txteditcardid.Text = rdr["card_id"].ToString(); txteditname.Text = rdr["name"].ToString(); String date1 = rdr["date_of_membership"].ToString(); String[] date = Regex.Split(date1, "[/ ]"); StringBuilder sb = new StringBuilder(); sb.Append(date[2]); sb.Append("-"); sb.Append(date[0]); sb.Append("-"); sb.Append(date[1]); txteditdate.Text = sb.ToString(); ; txteditopenbal.Text = rdr["opening_balance"].ToString(); txteditphone.Text = rdr["phone_number"].ToString(); txteditaddress.Text = rdr["address"].ToString(); txteditpwd.Text = rdr["password"].ToString(); txteditconfirmpwd.Text = rdr["confirm_password"].ToString(); } } // String query1 = "SELECT CAST(`date_of_membership` AS DATE) AS date_of_membership FROM admin where member_id='" + memberid + "' OR card_id='" + cardid + "' "; // MySqlCommand com = new MySqlCommand(query1, con); // using(MySqlDataReader rdr=com.ExecuteReader()) // { if(rdr.Read()) //txteditdate.Text = rdr["date_of_membership"].ToString(; // } } } protected void btneditok_Click(object sender, EventArgs e) { String memberid = Request.QueryString["memberid"]; String cardid = Request.QueryString["cardid"]; using (MySqlConnection con = new MySqlConnection(ConnectionString)) { String query = "update admin set member_id=@memberid,card_id=@cardid,name=@name,date_of_membership=@date,opening_balance=@balance,phone_number=@phone,address=@address,password=@pwd,confirm_password=@confirmpwd where member_id='" + memberid + "' OR card_id='" + cardid + "' "; MySqlCommand command = new MySqlCommand(query, con); command.Parameters.AddWithValue("@memberid", txteditmemid.Text); command.Parameters.AddWithValue("@cardid", txteditcardid.Text); command.Parameters.AddWithValue("@name", txteditname.Text); command.Parameters.AddWithValue("@date", txteditdate.Text); command.Parameters.AddWithValue("@balance", txteditopenbal.Text); command.Parameters.AddWithValue("@phone", txteditphone.Text); command.Parameters.AddWithValue("@address", txteditaddress.Text); command.Parameters.AddWithValue("@pwd", txteditpwd.Text); command.Parameters.AddWithValue("@confirmpwd", txteditconfirmpwd.Text); con.Open(); command.ExecuteNonQuery(); } } }} 解决方案 Add IsPostBack in your page_Load eventprotected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { String memberid = Request.QueryString["memberid"]; String cardid = Request.QueryString["cardid"]; using (MySqlConnection con = new MySqlConnection(ConnectionString)) { String query = "select member_id,card_id,name,date_of_membership,opening_balance,phone_number,address,password,confirm_password from admin where member_id='" + memberid + "' OR card_id='" + cardid + "' "; MySqlCommand command = new MySqlCommand(query, con); con.Open(); using (MySqlDataReader rdr = command.ExecuteReader()) { if (rdr.Read()) { txteditmemid.Text = rdr["member_id"].ToString(); txteditcardid.Text = rdr["card_id"].ToString(); txteditname.Text = rdr["name"].ToString(); String date1 = rdr["date_of_membership"].ToString(); String[] date = Regex.Split(date1, "[/ ]"); StringBuilder sb = new StringBuilder(); sb.Append(date[2]); sb.Append("-"); sb.Append(date[0]); sb.Append("-"); sb.Append(date[1]); txteditdate.Text = sb.ToString(); ; txteditopenbal.Text = rdr["opening_balance"].ToString(); txteditphone.Text = rdr["phone_number"].ToString(); txteditaddress.Text = rdr["address"].ToString(); txteditpwd.Text = rdr["password"].ToString(); txteditconfirmpwd.Text = rdr["confirm_password"].ToString(); } } // String query1 = "SELECT CAST(`date_of_membership` AS DATE) AS date_of_membership FROM admin where member_id='" + memberid + "' OR card_id='" + cardid + "' "; // MySqlCommand com = new MySqlCommand(query1, con); // using(MySqlDataReader rdr=com.ExecuteReader()) // { if(rdr.Read()) //txteditdate.Text = rdr["date_of_membership"].ToString(; // } } } }after adding ispostback plz debug your code working or not? if you not working comment me...! 这篇关于按钮点击不更新数据库,查询正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-25 23:31