string sql = "Update stdrecord set firstname='" + fname + "',lastname='" + lname + "',mobile='" + mob + "',phone='" + phn + "',city='" + city + "',province='" + prov + "'where id='" + id + "'";
Вы пропустите =
после провинции и там нет места между prov и where
!
Также в этом случае вы открыты для SqlInjection, используйте SqlCommand.Parameters.
Запрос должен выглядеть следующим образом.
string sql = @"Update stdrecord set [email protected] ,[email protected], [email protected],
[email protected],[email protected], [email protected] where [email protected]";
Это защитит вас от SqlInjection, а также SQL Server закроет ваш запрос.
Чтобы с помощью команды Параметры необходимо добавить этот код в ваш SqlCommand
SqlCommand cmd = new SqlCommand(sql, connectionString);
cmd.Parameters.AddWithValue("@FName", fName);
cmd.Parameters.AddWithValue("@LastName", lname);
cmd.Parameters.AddWithValue("@Mobile", mob);
cmd.Parameters.AddWithValue("@Phone", phn);
cmd.Parameters.AddWithValue("@City", city);
cmd.Parameters.AddWithValue("@Province", prov);
cmd.Parameters.AddWithValue("@ID", id);
С этой структурой у вас не будет проблем, как это в будущем, потому что вы не будете добавлять +
и '
нон-стоп. Также используйте @
, когда вы создаете строку, это дает вам возможность писать строку на более чем одной строке без использования +
.
использовать параметризованные запросы. –
Сначала попробуйте свои запросы в своем менеджере баз данных. И вы всегда должны использовать [параметризованные запросы] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/). Этот тип конкатенаций строк открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) атак. –
можете ли вы запросить аргументированные запросы? – user3268114