存储过程改一下试试先:
=============存储过程UpdateGc============
ALTER PROCEDURE dbo.UpdateGc
(
@PRJ_ID varchar(20),
@AUTHDATE datetime            -- varchar(8) 主要改这里
)AS
/* SET NOCOUNT ON */ BEGIN TRANSACTIONUPDATE TB_01
SET
AUTHDATE = @AUTHDATE
WHERE (PRJ_ID = @PRJ_ID) COMMIT TRANSACTION
RETURN

解决方案 »

  1.   

    有问题的话,改成varchar(32)试试
      

  2.   

    非常谢谢CSDMN(冒牌经理 V0.3) 你说的两种方法都可以~
    再请问一下,这有什么讲究吗?varchar(10)怎么就不可以,if ( MyGcgk.UpdateItem(PRJ_ID,AUTHDATE) )的时候,就会跳转到“更新失败”
      

  3.   

    再多问一句,呵呵如果该日子字段可以为空,操作者在更新的时候直接backspace掉它的内容,然后update,我这儿目前直接就出错了System.FormatException: 该字符串未被识别为有效的 DateTime。 at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at System.DateTime.Parse(String s, IFormatProvider provider, DateTimeStyles styles) at System.DateTime.Parse(String s, IFormatProvider provider) at System.Convert.ToDateTime(String value, IFormatProvider provider) at System.String.System.IConvertible.ToDateTime(IFormatProvider provider) at System.Convert.ToDateTime(Object value) at System.Data.Common.DateTimeStorage.Set(Int32 record, Object value) at System.Data.DataColumn.set_Item(Int32 record, Object value)不能在 CHECKOFF 列中存储 <>。所需类型是 DateTime。 
    请教如何捕获这个错误给出用户提示或者处理一下?多谢多谢
      

  4.   

    if (txtAUTHDATE.Text != String.Empty) UpdateItem();
    else
    {
    lblMessage.Text = "请输入正确的日期格式!";
    return;
    }
      

  5.   

    上面这个我是写在update按钮的Click事件,若有若干日期型字段,是一个一个判断,还是有更好的方法吗?