c#中的SQL命令不工作
本文关键字:工作 命令 SQL 中的 | 更新日期: 2023-09-27 18:15:39
我正在尝试向名为Users的DB表添加新数据。
public string SendUserData(string Name, string Password, string Email)
{
SqlCeConnection conn = new SqlCeConnection("Data Source = " + HttpContext.Current.Server.MapPath(".") + "''App_Data''Database_Users.sdf");
SqlCeCommand cmd = new SqlCeCommand("INSERT INTO User (Username, Password, Email) VALUES ('" + Name + "' , '" + Password+ "' , '" + Email + "')" , conn );
conn.Open();
return cmd.CommandText;
}
它不张贴任何到表,有什么建议吗?
需要执行的命令
public string SendUserData(string Name, string Password, string Email)
{
using(SqlCeConnection conn = new SqlCeConnection("....."))
using(SqlCeCommand cmd = new SqlCeCommand(@"INSERT INTO User (Username, Password, Email)
VALUES (@name, @pass, @email)" , conn );
{
conn.Open();
cmd.Parameters.AddWithValue("@name", Name);
cmd.Parameters.AddWithValue("@pass", Password);
cmd.Parameters.AddWithValue("@email", EMail);
cmd.ExecuteNonQuery(); // <- This line inserts the record in the database
}
// This line probably is not needed
return cmd.CommandText;
}
任何命令都应该至少有一个命令文本和一个打开的连接。此时,您可以调用命令
提供的执行方法之一。- ExecuteNonQuery:用于插入/删除/更新或其他命令修改数据库模式
- ExecuteScalar:从SQL语句中检索单个值(计算金额等)
- ExecuteReader:获取一个允许检索的数据阅读器SELECT语句 中的数据行数
这个链接是关于SqlCommand用法的教程
(或任何类型的派生DbCommand类,如SqlCeCommand)
还应注意连接和命令应包含在using语句中,以确保在不再需要时关闭和处置对象,也可以在出现异常的情况下
最后,不要使用字符串连接来构建命令文本。始终使用参数化查询,以避免sql注入攻击和字符串中的引号解析问题。十进制分隔符或日期格式
语法不完整。您必须执行该命令,如果不再需要连接,最好关闭该连接。
public string SendUserData(string Name, string Password, string Email)
{
SqlCeConnection conn = new SqlCeConnection("Data Source = " + HttpContext.Current.Server.MapPath(".") + "''App_Data''Database_Users.sdf");
SqlCeCommand cmd = new SqlCeCommand("INSERT INTO User (Username, Password, Email) VALUES ('" + Name + "' , '" + Password + "' , '" + Email + "')", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
return cmd.CommandText;
}