パラメータ、パラメータ、パラメータ。コードの最初の利点は、一重引用符を忘れることです。次に、恐ろしい 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