我有这个连接到我的数据库的类:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for Dcon
/// </summary>
public class Dcon
{
public SqlConnection con;
private SqlCommand cmd = new SqlCommand();
public SqlDataReader dr;
public Dcon()
{
con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\web\WebSite4\App_Data\Dbase.mdf;Integrated Security=True");
con.Open();
cmd.Connection = con;
}
public bool IUD(string sqls)
{
try
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqls;
cmd.ExecuteNonQuery();
con.Close();
return true;
}
catch
{
return false;
}
}
public bool select(string sqls)
{
cmd.CommandText = sqls;
dr = cmd.ExecuteReader();
if(dr.Read())
return true;
return false;
}
}
以及使我的数据库更新的代码
if (s1.IUD("UPDATE users SET fname=N'" + TextBox1.Text + "',lname=N'" + TextBox2.Text + "',uname='" + TextBox3.Text + "',password='" + pass + "' WHERE (id=" + Request.QueryString["id"]+")"))
{
Response.Redirect("success.aspx");
}
else
{
Response.Redirect("faild.aspx");
}
它进入成功页面,但它没有改变我的数据,我的代码工作在插入和选择staments但我不知道为什么它不工作当我使用更新的声明,可以任何人帮助?!
答案 0 :(得分:1)
这里要考虑多个事项。
首先,最重要的是使用variable
并检查它返回的内容,以检查受此影响的# of rows
int rows = cmd.ExecuteNonQuery();
如果是0
那么您的查询肯定有问题,或者没有符合您所选条件的记录,除了这两项记录之外别无其他任何事情。
注意:您的代码有几个问题
QueryString 可以为null,请像这样检查
If(Request.QueryString["id"] != null)
{
// your update code here
}