不,您无法避免这种行为。它是TdsParser.ThrowExceptionAndWarning()编写方式的结果
特别是这条线
bool breakConnection = this.AddSqlErrorToCollection(ref temp, ref this._errors) | this.AddSqlErrorToCollection(ref temp, ref this._attentionErrors); breakConnection |= this.AddSqlErrorToCollection(ref temp, ref this._warnings); breakConnection |= this.AddSqlErrorToCollection(ref temp, ref this._attentionWarnings);
我的猜测是,无论出于何种原因,对于ExecuteScaler而言,集合_error或_attentionErrors之一为空,而对于ExecuteNonQuery而言则为空。
我敢肯定,如果您戳了一下就可以找出原因。
无论如何,您似乎已经有了解决方法。仅使用SQLExecption.Error中的第一项
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)