为什么我会收到'数据将被截断'异常?

时间:2015-06-01 16:30:19

标签: asp.net sql-server vb.net

我有一些执行存储过程的代码,而后者只是运行INSERT + SELECT来反馈给调用数据适配器

Public Function mGetDataSet_Trans(ByVal aStrQuery As String, ByRef aObjDS As DataSet, ByVal aStrDSName As String, ByVal aCon As SqlConnection, ByRef aTrans As SqlTransaction) As Boolean

    Dim pObjDataAdaptor As New SqlClient.SqlDataAdapter

    mGetDataSet_Trans = False

    Try
      pObjDataAdaptor.SelectCommand = New SqlCommand(aStrQuery, aCon, aTrans)
      pObjDataAdaptor.Fill(aObjDS, aStrDSName)
      mGetDataSet_Trans = True

    Catch SqlExp As SqlException
      //do stuff

      Throw SqlExp
    End Try
End Function

没有什么太复杂的;创建一个数据适配器,给它一个命令和连接,填充一个通过引用传递的新数据集对象,如果有异常则回滚事务。

aStrQuery基本上是这样的:

    "EXECUTE USPSave 

    @FID='1090802', 
    @PID='4739933', 
    @aAType='4', 
    @aADate='6/1/2015 12:00:00 AM', 
    @aDiag1='ABC.12', 
    @aDiag2='ABC.12', 
    @aDiag3='ABC.12AB', 
    @aChangedBy='123'"

    // SELECT ... FROM myTable WHERE FID = @FID

USPSave@aDiagXVARCHAR(10),所以那里没有问题。更新的表还定义了VARCHAR(10)字段,这也不应该是一个问题。

我完全不知道这个异常可能来自哪里,但是Fill块中的TRY调用抛出异常。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

没有太多事情可以继续,但这是一个猜测:

“字段为VARCHAR(10)”

“@ aADate ='6/1 / 2015 12:00:00 AM',”

我认为aADate字段太长而且你被告知它会被截断。