按钮点击不更新数据库,查询正确 [英] not updating database in button click , query is correct
问题描述
我有管理页面(包含选项卡,在编辑选项卡中单击确定然后导航到另一个页面(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#>< 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 ( &, < span class =code-string>%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 >
< < span class =code-leadattribute> title > < / title >
< / head >
< 正文 >
< 表格 id = form1 runat = 服务器 >
< ajax:ToolkitScriptManager ID = scriptmanager1 runat = server >
< / ajax:ToolkitScriptManager >
< div < span class =code-keyword>>
< 表 align = center
样式 = width:651px > < tr > < td > < / td > < td align = right > < / td > < ; td align < span class =code-keyword> = center > 编辑Memb呃 < / td > < / tr > < tr > < td > < / td > < td align = right < span class =code-keyword>> 会员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 > < span class =code-keyword>< 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 < span class =code-attribute>
> <
< ajax:CalendarExtender ID = calendar1
< span class =code-attribute> 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 = < span class =code-keyword> server > < / asp:TextBox > < / td > < td >
< / td > < / tr > < tr > < td > < / td > < td align = right > 电话号码:< span class =code-keyword>< / 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=\"< span class=\"code-keyword\">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 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...!
这篇关于按钮点击不更新数据库,查询正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!