Я пытаюсь выполнить команду insert в команде для базы данных SQL Server CE, которая поставляется с веб-сайтом стартера asp.net. Я пытаюсь сохранить динамический код, поэтому я могу использовать его как страницу управления БД для всех таблиц в этой БД. Я получаюКак вставить в базу данных SQL Server CE в asp.net
Исключение брошено: «System.Data.SqlServerCe.SqlCeException» в System.Data.SqlServerCe.dll
Я пытался сделать это только с длинной строкой в качестве запроса, но это тоже не сработало. Что мне не хватает/не так?
SqlCeCommand Sqlcmd = new SqlCeCommand();
Sqlcmd.Connection = db.Connection as SqlCeConnection;
var Cols = "";
foreach (var column in Columns)
{
Sqlcmd.Parameters.AddWithValue('@'+column, Request.Form[column]);
Cols += column + ",";
insertValues += '@' + it + ",";
}
Cols = Cols.Substring(0, Cols.Length - 1);
insertValues = insertValues.Substring(0, insertValues.Length - 1);
Sqlcmd.CommandText =
"INSERT INTO " + table + "("+Cols+") " +
"VALUES ("+insertValues+")";
Sqlcmd.Prepare();
Sqlcmd.ExecuteNonQuery();
Какова ценность 'InnerException' исключения? Используйте блок 'catch' и оберните соединение с БД в инструкции' using'. – Dai
И каков фактический текст команды? – ErikEJ
Спасибо Dai, я смог разобраться и найти проблему с помощью catch и изучения ошибки в Visual Studio. Проблема заключалась в том, что у меня был внешний ключ на postID, и я входил в тестовые данные, не думая об этом. Поэтому я изменил postID на действительный postID, и теперь он работает. Еще раз спасибо – Peavey2787