代码如下:
public void UpdateEmailStatus(Guid EmailVerifID, int StatusFlag)
{
SqlParameter[] arrayParams = new SqlParameter[2];
arrayParams[0]=new SqlParameter("@EmailVerifID",SqlDbType.UniqueIdentifier);
arrayParams[0].IsNullable = false;
arrayParams[0].Value =EmailVerifID; arrayParams[1] = new SqlParameter("@StatusFlag",SqlDbType.Int);
arrayParams[1].IsNullable = false;
arrayParams[1].Value =StatusFlag; SqlHelper.ExecuteNonQuery(m_ConnectionString,"ap_EmailVerifStatusUPD",arrayParams);
}数据库数据类型:
         [EmailVerifID] [uniqueidentifier] NOT NULL ,
[UserID] [uniqueidentifier] NOT NULL ,
[EmailAddress] [nvarchar] (128) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[EmailVerified] [tinyint] NOT NULL ,
[Status] [int] NULL 错误提示:
Object must implement IConvertible. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.InvalidCastException: Object must implement IConvertible.Source Error: 
Line 129: arrayParams[1].Value =StatusFlag;
Line 130:
Line 131: SqlHelper.ExecuteNonQuery(m_ConnectionString,"ap_EmailVerifStatusUPD",arrayParams);
Line 132: }
Line 133:
 

解决方案 »

  1.   

    SqlHelper.ExecuteNonQuery(m_ConnectionString,"ap_EmailVerifStatusUPD",arrayParams);????SqlCommand的ExecuteNonQuery()方法,里面可以放参数????应该是这里的问题
      

  2.   

    贴出存储过程,检查参数是不是一致?
    你用的DAAB是什么版本的?
      

  3.   

    DAAB版本是1.0存储过程是这个:数据类型应该也一致了CREATE PROCEDURE ap_EmailVerifStatusUPD
    (
         @EmailVerifID UniqueIdentifier,
         @StatusFlag int
    )
    AS   UPDATE EmailVerification SET StatusFlag=@StatusFlag
       WHERE EmailVerifID=@EmailVerifID
    GO
      

  4.   

    写错了,存储过程是这个:
    CREATE PROCEDURE ap_EmailVerifStatusUPD
    (
         @EmailVerifID UniqueIdentifier,
         @StatusFlag int
    )
    AS   UPDATE EmailVerification SET Status=@StatusFlag
       WHERE EmailVerifID=@EmailVerifID
    GO