参数,参数,参数。您的代码的第一个好处是,您忘记了单引号。其次,您避免了可怕的 SQL 注入漏洞。第三,您的代码将更容易阅读。考虑一下:
string insertQuery = "INSERT INTO table (field1, field2, field3) VALUES (@par1, @par2, @par3)";
Database.Execute(insertQuery, var1, var2, var3);
其中var1、var2和var3是包含您需要插入的值的变量。
有一个更简单(但更糟糕,因为它仍然容易受到 SQL 注入攻击)的解决方案,这将使您的代码比您发布的示例更具可读性:string.format。而不是这个:
DataBase.Execute("Insert into Users(UserID,FirstName,SecondName,UserName,Password,Permission) Values(" +
obj.PersonID +
",'" + obj.FirstName +
"','" + obj.LastName +
"','" + username +
"','" + psw +
"'," + permission + ")");
你可以做这样的事情,更清晰,更难忘记一些简单的引号:
string query = string.Format("Insert into Users (UserID,FirstName,SecondName,UserName,Password,Permission) Values({0}, '{1}', '{2}', '{3}', '{4}', {5})", obj.PersonID, obj.FirstName, obj.LastName, username, psw, permission);
Database.Execute(query);
将此视为插入参数用法的简要示例:http: //msdn.microsoft.com/en-us/library/webmatrix.data.database.execute (v=vs.111).aspx