没有数据插入到我的表中

本文关键字:我的 插入 数据 | 更新日期: 2023-09-27 17:57:58

我有一个简单的表:

Users
UserID     Guid   doesnt allow null
Avatar     image  allows null
Reputation int    allows null

我使用了以下语句:

string insertCommand = "INSERT INTO Users (UserID) VALUES" +""+ "('"+UsersIdentityToinsert+"')";

UsersIdentityToisert(这个值是Guid,我检查了它的值,它不是null)。

没有抛出任何异常。一旦用户按下登录按钮,他就会被转移到另一个页面,并插入他的记录。我接着调试了该语句的执行过程。

当我返回Visual Studio 2010中的服务器资源管理器并单击刷新时,"用户"表为空。为什么?

连接字符串

<add name="YourGuruDB" connectionString="Data Source=DIMA-00AA1DA557;Initial Catalog=model;Integrated Security=True"/>

我从配置中检索到代码:

WebConfigurationManager.ConnectionStrings["YourGuruDB"].ConnectionString;

添加:

    public static void InsertUsers(Guid UsersIDentity)
{
    SqlConnection sqlConnect = getSqlConnection();
    SqlCommand sqlCommand = new SqlCommand(RegisterAdo.insertCommand(UsersIDentity), sqlConnect);//insert command method returns the insert statement described above
    try
    {
        sqlConnect.Open();
        sqlCommand.ExecuteNonQuery();
    }
    catch (Exception x)
    {
        HttpContext.Current.Response.Redirect("~/ErrorPage.aspx?Error=" + WRITE_ERROR);
    }
    finally
    {
        sqlConnect.Close();
    }
}

没有数据插入到我的表中

而不是使用

"INSERT INTO Users (UserID) VALUES" +""+ "('"+UsersIdentityToinsert+"')";

使用这个:

"INSERT INTO Users (UserID) VALUES" +""+ "(CONVERT(uniqueidentifier, '"+UsersIdentityToinsert+"'))";

而且您确实应该使用一个预先准备好的语句,而不是连接sql。

DB连接如何?到目前为止,您是否运行了任何成功的语句?尝试简单的选择。

试试这个:

"INSERT INTO Users (UserID) VALUES ('"+UsersIdentityToinsert+"')";

有很多事情需要检查

  • 你连接到正确的数据库了吗
  • 执行此SQL语句的代码是否实际工作。您不显示该代码。我期望某个SqlCommand对象上有一个ExecuteNonQuery()
  • 你真的打开了与数据库的连接吗?或者连接字符串只是在配置中,而没有在代码中的任何位置使用

此外,您的代码容易受到SQL注入攻击。您应该使用参数化查询来防止这种情况发生。这篇关于SQL注入攻击的文章将帮助您如何编写。

您还缺少我希望看到的代码。大致如下:

string insertCommand = "INSERT INTO Users (UserID) VALUES" 
    +""+ "('"+UsersIdentityToinsert+"')";
string cs = WebConfigurationManager.ConnectionStrings["YourGuruDB"].ConnectionString;
SqlConnection conn = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand(insertCommand, conn);
conn.Open();
cmd.ExexuteNonQuery();
conn.Close();
相关文章: