“/test”应用程序中的服务器错误。
-------------------------------------------------
该字符串未被识别为有效的日期时间。有一个从索引 1 处开始的未知字。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.FormatException: 该字符串未被识别为有效的日期时间。有一个从索引 1 处开始的未知字。
源错误:
行 328: SqlDataAdapter adp = new SqlDataAdapter(cmd);
行 329: DataSet ds = new DataSet();
行 330: adp.Fill(ds);
行 331: DataView dv = ds.Tables[0].DefaultView;
行 332: dgBlog.DataSource = dv;
这是我的存储过程
CREATE PROCEDURE p1
(
@b_id varchar(10),
@b_title varchar(50) ,
@user varchar(20),
@b_state varchar(20) ,
@b_time1 datetime,
@b_time2 datetime,
@str varchar(50)
)
AS
declare @lsStr as varchar(1024)
set @lsStr =' select * from T_User,T_Blog where T_User.userID = T_Blog.userID '
set @lsStr = @lsStr + 'and blogID like '+ @b_id + ' and T_Blog.title like ' + @b_title+ ' and T_Blog.status like ' +@b_state+ ' and T_User.usernick like '+ @user
set @lsStr = @lsStr + ' and pubtime > '+ @b_time1 +' and pubtime < ' + @b_time2 + ' '+ @strexec (@lsStr)
GO这是最后一个传的参数,主要是用做排序 order by ……SqlParameter para_order = new SqlParameter("@str",SqlDbType.VarChar,50);
para_btime2.Value = str_order;
cmd.Parameters.Add(para_order);现在的问题就是 如果说我不传排序字符串的话 程序运行没有问题,当然存储过程就没有lsStr和str的存在了 如果加上了排序的话 将存储过程写成这样,不管我排序里面有没有按照时间排序的列 都同样会出现上述的问题,请高手们指教一二
-------------------------------------------------
该字符串未被识别为有效的日期时间。有一个从索引 1 处开始的未知字。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.FormatException: 该字符串未被识别为有效的日期时间。有一个从索引 1 处开始的未知字。
源错误:
行 328: SqlDataAdapter adp = new SqlDataAdapter(cmd);
行 329: DataSet ds = new DataSet();
行 330: adp.Fill(ds);
行 331: DataView dv = ds.Tables[0].DefaultView;
行 332: dgBlog.DataSource = dv;
这是我的存储过程
CREATE PROCEDURE p1
(
@b_id varchar(10),
@b_title varchar(50) ,
@user varchar(20),
@b_state varchar(20) ,
@b_time1 datetime,
@b_time2 datetime,
@str varchar(50)
)
AS
declare @lsStr as varchar(1024)
set @lsStr =' select * from T_User,T_Blog where T_User.userID = T_Blog.userID '
set @lsStr = @lsStr + 'and blogID like '+ @b_id + ' and T_Blog.title like ' + @b_title+ ' and T_Blog.status like ' +@b_state+ ' and T_User.usernick like '+ @user
set @lsStr = @lsStr + ' and pubtime > '+ @b_time1 +' and pubtime < ' + @b_time2 + ' '+ @strexec (@lsStr)
GO这是最后一个传的参数,主要是用做排序 order by ……SqlParameter para_order = new SqlParameter("@str",SqlDbType.VarChar,50);
para_btime2.Value = str_order;
cmd.Parameters.Add(para_order);现在的问题就是 如果说我不传排序字符串的话 程序运行没有问题,当然存储过程就没有lsStr和str的存在了 如果加上了排序的话 将存储过程写成这样,不管我排序里面有没有按照时间排序的列 都同样会出现上述的问题,请高手们指教一二
para_btime2.Value = str_order;
cmd.Parameters.Add(para_order);
你的
para_bitime2.value=str_order
意思是@b_time2 datetime的值是str_order吗?
你试试para_order.value=str_order
para_btime2.Value = str_order;
从编程习惯上来说para_btime2应该指向的是你的存储过程中的 @b_time2参数,str_order应该是你的排序子句,但你在客户代码中,误把str_order传给了para_btime2,我估计你把para_btime2.Value = str_order这句C#代码改为para_btime2.Value = str_order就OK了,你试一下,如果成功了的话,就快给分吧