使用C#向SQL Server插入数据时,报错Object reference not set to an instance of an object

代码如下:
连续插入很多条数据,其中就会突然报两次Object reference not set to an instance of an object.

DbConnection cnn;(这里是提前new过的,一直保持的连接状态)
string sqlString = "INSERT INTO [dbo].[Events] VALUES (N'{XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXX}',1000,N"HAHA');
DbCommand cmd = new SqlCommand(queryString,cnn as SqlConnction);

try
{
cmd.Transaction = cnn.BeginTransaction();
cmd.CommandText = sqlString;
cmd.ExcuteNonQuery();
cmd.Transation.Commit();
}
catch(Exception e)
{
....
}

c#

2个回答

cnn先new实例化下看看

//str为数据库连接字符串
 DbConnection cnn = new MySqlConnection(str); 
Bravery_mystyle
Bravery_mystyle 谢谢,但是估计不是new的问题,我用的是长连接,提前已经new过了,之后插入的时候一直用之前new出来的cnn
5 个月之前 回复

c#中最好不要用长连接,当这个连接再其他地方使用还没有被释放的时候,可能会出错。特别是多个线程同时使用的话,很容易冲突。因为有时候查询等待数据库返回等操作对于操作系统来说是很漫长的。这过程很容易冲突。还有就是不知道你有没有其他的关闭操作。万一有一个sql执行出错了,你就把他close掉了。其他地方使用就会出错。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐