2015-09-06 9 views
0

Я пытаюсь выполнить команду 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(); 
+0

Какова ценность 'InnerException' исключения? Используйте блок 'catch' и оберните соединение с БД в инструкции' using'. – Dai

+0

И каков фактический текст команды? – ErikEJ

+0

Спасибо Dai, я смог разобраться и найти проблему с помощью catch и изучения ошибки в Visual Studio. Проблема заключалась в том, что у меня был внешний ключ на postID, и я входил в тестовые данные, не думая об этом. Поэтому я изменил postID на действительный postID, и теперь он работает. Еще раз спасибо – Peavey2787

ответ

0

Пожалуйста, сообщите ваше соединение и добавьте с помощью утверждений вокруг своих объектов команды и подключения, чтобы убедиться, что они расположены. Не забудьте закрыть соединение. Вот example MSDN обеспечивает.

+0

Спасибо, я обязательно поменяю это. – Peavey2787

+0

Это работало для вас? –

Смежные вопросы