我在SQL SERVER中建了一个存贮过程,用来统计数据,其有两个参数,表示统计的起始与结束日期,数据类型设为varchar(10)。该存贮过程在SQLSERVER中执行正确。我在ASP.NET的页面中调用这个存贮过程时出错,出错信息为“从字符串转换为 datetime 时发生语法错误”,我想出错的地方肯定发生在那两个参数的使用时,可是为什么单独运行时不出错,两个联合起来就错了呢?很急的,请各位不吝指教。

解决方案 »

  1.   

    跟踪一下吧,估计是我说的两点,类型有错误
    “从字符串转换为 datetime 时发生语法错误”
    ------------------------------
    就是说你的参数传递时有错误
    1、cs页面参数是varchar型而不datetime型
    2、存储过程也须是varchar型
      

  2.   

    是你的数据访问层代码出问题,
    指定参数类型出错,
    检查加载到SqlCommand的SqlParameter参数对象。
    SqlParameter myPara = new SqlParameter("@LOG_Time",SqlDbType.DateTime);
    myPara.Value = DateTime.Now;
    myComm.Parameters.Add(myPara);
    //修改成
    SqlParameter myPara = new SqlParameter("@LOG_Time",SqlDbType.VarChar,50);
    myPara.Value = DateTime.Now.ToString;
    myComm.Parameters.Add(myPara);
      

  3.   

    从字符串转换为 datetime 时发生语法错误
    第一,存储过程应该不会错误
    第二,你在c#中读取存储过程返回的数据的时候,需要把字符转成datetime类型
    如果存在不合法的时间,那么在转换的时候,可能会出错误!