Я считаю, что для SQL Server ваш оператор INSERT
неверен - попробуйте следующее:
string query = "INSERT INTO Member (ID, Name, City, Address) " +
"VALUES (@ID, @Name, @City, @Address)";
В списке столбцов после INSERT INTO
должен быть указан имена столбцов , как определено в таблице базы данных - и это без ведущего @
.
С другой стороны, заполнители параметров в разделе VALUES (...)
- это просто параметры - и должны иметь начальное значение @
для своего имени.
Затем эти параметры должны быть определены, и для каждого из них должно быть предоставлено значение до .ExecuteNonQuery()
вызова:
//model get,set method does not access
sqlcmd.Parameters.Add("@ID", SqlDbType.Int).Value = 42;
sqlcmd.Parameters.Add("@Name", SqlDbType.VarChar, 100).Value = "Miller";
sqlcmd.Parameters.Add("@City", SqlDbType.VarChar, 100).Value = "London";
sqlcmd.Parameters.Add("@Address", SqlDbType.VarChar, 100).Value = "123 Earl's Court";
sqlcmd.ExecuteNonQuery();