打印出来,和我要的数据是一样的,但是到数据库里面一看,数据没有改成功,这是为什么呢,表名和列名没有出错,这是为什么呢?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using newclass;
using System.Data.SqlClient;

public partial class login : System.Web.UI.Page
{
    mymyclass mycnn = new mymyclass("Mydata");
    protected void Page_Load(object sender, EventArgs e)
    {
        
    }
    protected void Login_Click(object sender, EventArgs e)
    {
        if (User_Id.Text.ToString() == "")
        {
            Response.Write("<script>alert('" + "用户名不能为空!" + "');</script>");
        }
        else if (User_Password.Text.ToString() == "")
        {
            Response.Write("<script>alert('" + "用户密码不能为空!" + "');</script>");
        }
        
        else if (!(RadioButton1.Checked) && !(RadioButton2.Checked) && !(RadioButton3.Checked))
        {
            Response.Write("<script>alert('" + "用户角色不能为空!" + "');</script>");
        }
        else
        {
            RadioButton();
        }
    }
    public void RadioButton()
    {
        string Id = User_Id.Text;
        string Password = User_Password.Text;
        string id = "";
        string name = "";
        string password = "";
        string logintime_now="";
        string time = DateTime.Today.Year + "年" + DateTime.Today.Month + "月" + DateTime.Today.Day + "日" + DateTime.Now.ToLongTimeString();
        string sql = "";
        mycnn.open();
        
        //学生登录
        if (RadioButton1.Checked)
        {
            sql = "select S_id,S_password,S_name,S_logintime_now from User_Student where S_id='" + Id + "'and  S_password='" + Password + "'";

            SqlDataReader dr = mycnn.GetDataReader(sql);

            while (dr.Read())
            {
                id = dr["S_id"].ToString();             
                name = dr["S_name"].ToString();
                password = dr["S_password"].ToString();
                logintime_now = dr["S_logintime_now"].ToString();            
            }
            mycnn.close();

            if (id != "" && password != "")
            {             
                Session["id"] = id;             
                Session["name"] = name;
                Session["password"] = password;
                Session["RoleName"] = RadioButton1.Text.ToString();

                //如果登录成功,将S_logintime_now传给S_logintime_last,将当前时间传给S_logintime_now
                //出错,sql语句编辑成功,但是不是修改数据库,可能找不到表               
                sql = "update User_Student set S_logintime_last='" + logintime_now.ToString() + "',S_logintime_now='" + time.ToString() + "' where S_id='" + id.ToString() + "'and S_name='" + name.ToString() + "'";
                
                Response.Write("<script>alert('用户名和密码正确')</script>");

                //如果没有传URL参数,默认登录成功之后跳转的设定网页,否则跳转到传来URL的页面
                if (string.IsNullOrEmpty(Request.QueryString["URL"]))
                {
                    Server.Transfer("~/Common/first.aspx");
                }
                else {
                    Response.Redirect(Request.QueryString["URL"]);
                }
            }
            
            else
            {
                Response.Write("<script>alert('用户名、密码或者验证码错误')</script>");
            }

        }
        //教师登录
        else if (RadioButton2.Checked)
        {
         }
         //管理员登录
        else if (RadioButton3.Checked)
        {
         }
   }
}

6 个解决方案

#1


加断点调试一下,把生成的SQL语句放到数据库里面执行一下,看看有没有报错。

#2


你这只定义了SQL  没有执行啊

#3


你只执行了Select语句  你后面的UPDATE 语句并没有执行

#4


你都没执行sql啊,加一句
cmd.ExecuteNonQuery();

#5


学习学习 .NET 请问SQL语句运行成功,但是不能修改数据库的值呢

#6


引用 4 楼 Chinajiyong 的回复:
你都没执行sql啊,加一句
cmd.ExecuteNonQuery();


好了,我是用mycnn.updatedata(sql);来执行的,,之前不是很理解,现在明白了

#1


加断点调试一下,把生成的SQL语句放到数据库里面执行一下,看看有没有报错。

#2


你这只定义了SQL  没有执行啊

#3


你只执行了Select语句  你后面的UPDATE 语句并没有执行

#4


你都没执行sql啊,加一句
cmd.ExecuteNonQuery();

#5


学习学习 .NET 请问SQL语句运行成功,但是不能修改数据库的值呢

#6


引用 4 楼 Chinajiyong 的回复:
你都没执行sql啊,加一句
cmd.ExecuteNonQuery();


好了,我是用mycnn.updatedata(sql);来执行的,,之前不是很理解,现在明白了
标签:

相关文章