參數,參數,參數。你的代碼的第一個好處,你忘記了單引號。其次,您避免了可怕的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
請幫我傢伙! – ranifisch
是用戶ID自動編號或不? –
@ranifisch你應該使用參數 - 它應該可以幫助您避免此類問題 – Alex