按钮点击不更新数据库,查询正确 [英] not updating database in button click , query is correct

查看:70
本文介绍了按钮点击不更新数据库,查询正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有管理页面(包含选项卡,在编辑选项卡中单击确定然后导航到另一个页面(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>

> < / asp:TextBox > < < span class =code-leadattribute> / td > < td >
< 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屋!

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