【发布时间】:2015-10-20 16:12:11
【问题描述】:
这实际上可能不是代码问题,但这里... 我的 C# 程序读取一个 CSV 文件并构建一个 SQL Insert 语句将文件的所有行插入到一个表中,因此 Insert 语句变为:
Insert GHP_For_CMS (GroupId, EmployeeID, etc...) values (rec1_field1, rec1_field2, etc...), (rec2_field1, rec2_field2, etc...)
SQL 针对来自开发服务器的沙盒/开发数据库完美运行。 SQL 崩溃并出现 NullReference 异常(“对象未设置为对象的实例”)针对来自生产服务器的相同沙盒/开发数据库。开发服务器的框架版本为 4.0.30319.18052,生产服务器的框架版本为 4.0.30319.18063。
我知道我在这里没有提供很多信息,但是有人有什么想法吗?或者至少有一些要检查的想法?我已经用头撞这个 3-4 天了,但没有任何东西能抬起它丑陋的头。
TIA!
错误发生在下面的“ExecuteNonQuery”上...
string dbConnString = ConfigurationManager.ConnectionStrings[targetDatabase].ToString();
if (null != dbConnString)
{
using (SqlConnection dbConn = new SqlConnection(dbConnString))
{
if (dbConn != null)
{
SqlCommand cmd = new SqlCommand(m_sqlInserts.ToString(), dbConn);
dbConn.Open();
int rowsAdded = cmd.ExecuteNonQuery();
...
【问题讨论】:
-
所以NullReferenceException。您需要在代码中显示异常发生的位置。
-
能否附加调试生产环境中运行的进程?那么请向我们展示C#调用中出现错误的C#代码行以及执行SQL命令的C#调用中为null的参数或对象。
-
我知道这可能看起来很明显,但是表格列是否在您的开发和生产之间排列?例如,您的开发表是否有一个新列正在用于尚未投入生产的新功能?
-
@GreatNate:我正在运行相同的 pgm 并从两个不同的服务器查询相同的数据库和表——也就是说,我编译了相同的程序并将其从同一文件复制到两个服务器我的盒子。
-
m_sqlInserts 的值是多少?
标签: c# sql insert executenonquery