2015-09-06 92 views
0

我试图执行一个SQL Server CE数据库的命令插入,该命令是随初学者asp.net网站提供的。我试图保持代码的动态,所以我可以将其用作此数据库中所有表的数据库管理页面。我不断收到如何在asp.net中插入SQL Server CE数据库

抛出异常:“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

感谢戴,我能够通过使用捕获和检查Visual Studio中的错误来挖掘并发现问题。问题是我在postID上设置了一个外键,并且我输入的测试数据没有考虑到它。所以我改变了postID到一个有效的postID,现在它工作。再次感谢 – Peavey2787

回答

0

请打开您的连接并在您的命令和连接对象周围添加使用语句以确保它们被丢弃。不要忘记关闭你的连接。以下是MSDN提供的example

+0

谢谢,我会确保改变这一点。 – Peavey2787

+0

为你插入了这项工作吗? –

相关问题