没有数据插入到我的表中
本文关键字:我的 插入 数据 | 更新日期: 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();