首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的更新查询在数据库上不起作用

我的更新查询在数据库上不起作用
EN

Stack Overflow用户
提问于 2013-05-04 05:15:34
回答 2查看 80关注 0票数 0

我在我的登录页面中编写了这段代码。我的代码没有任何错误,但是update查询不适用于我的数据库。

第一个查询有效,我重定向到index.aspx,但更新查询(第二个查询)不适用!

代码语言:javascript
复制
protected void btnLogin_Click(object sender, EventArgs e)
    {
        Database db1 = new Database();
        string query = "select * from Admins where UserName=@username and cast(Password as varbinary)=cast(@password as varbinary)";
        SqlCommand smd = new SqlCommand(query, db1.sc);
        smd.Parameters.AddWithValue("@username", txtUsername.Text);
        smd.Parameters.AddWithValue("@password", General.CreatePasswordHash(txtPassword.Text));
        SqlDataReader sdr = smd.ExecuteReader();
        smd.Parameters.Clear();
        if (sdr.Read())
        {
            Session.Add("username", sdr[0].ToString());
            string nowEnter = sdr[5].ToString();
            query = "update Admins set LastEnter=@lastEnter, NowEnter=@nowEnter where UserName=@username";
            string now = General.getPersianDateNow() + " ساعت " + General.getPersianTimeNow();
            smd.CommandText = query;
            smd.Parameters.AddWithValue("@lastEnter", nowEnter);
            smd.Parameters.AddWithValue("@nowEnter", now);
            smd.Parameters.AddWithValue("@username", sdr[1].ToString());
            sdr.Close();
            smd.ExecuteNonQuery();
            Response.Redirect("~/admin/Index.aspx", false);
        }
        else
        {
            lblError.Visible = true;
        }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-04 05:28:34

在我看来问题出在sdr的索引上。您调用的第一个

代码语言:javascript
复制
Session.Add("username", sdr[0].ToString());

下面的两行代码使用

代码语言:javascript
复制
 smd.Parameters.AddWithValue("@username", sdr[1].ToString());

无论如何,最安全的方法是创建带有命名列的select语句,而不是使用*

票数 3
EN

Stack Overflow用户

发布于 2013-05-04 05:20:51

检查表中是否存在您用于用户名的值。

您还添加了两次相同的参数。我不知道SqlCommand类将如何处理这一点,现在也不能测试它,但我认为在两次执行之间清除参数(smd.Parameters.Clear())可能是个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16367668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档