Параметры, параметры, параметры. Первое преимущество для вашего кода, вы забываете о одинарных кавычках. Во-вторых, вы избегаете опасной уязвимости 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
Является ли UserID autonumber или нет? –
@ranifisch вы должны использовать параметры - это должно помочь вам избежать таких проблем – Alex