首页 新闻 会员 周边 捐助

求助:字符串转换时期和/或时间时,转换失败。

0
悬赏园豆:10 [已解决问题] 解决于 2018-05-10 10:50

在登录页面输入用户和密码后登录,出现此错误,请问是哪里出现问题呢?

问题补充:

public abstract class Module
{
static string connectionString = ConfigurationManager.AppSettings["connstring"];
public Module()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw new Exception(e.Message);
}
}
}
}

 

 

提示出错的代码:

Module.ExecuteSql("UPDATE [jianhui_sys_admin] SET [online]=1,[lastlogin]='" + DateTime.Now.ToString() + "',[click]=[click]+1 where jianhui_id=" + dt.Rows[0]["jianhui_id"].ToString());

JenasYang的主页 JenasYang | 初学一级 | 园豆:146
提问于:2018-01-11 13:35
< >
分享
最佳答案
0

没有找到解决办法,关闭问题。

JenasYang | 初学一级 |园豆:146 | 2018-05-10 10:36
其他回答(5)
0

贴代码啊--

liangzai1996 | 园豆:135 (初学一级) | 2018-01-11 13:37
0

不知道你用的是什么数据库,你可以用数据库中的getdate() 函数,来判断一下数据库中的日期字符串格式。然后将
DateTime.Now ToString()得时候 转化为对应的格式。可能方法比较笨。应该能解决问题的。

收获园豆:5
Bluto | 园豆:317 (菜鸟二级) | 2018-01-11 13:56

数据库中的时间格式是: yyyy-MM-dd HHmmss这样的,DateTime. Now.toString(yyyy-MM-dd HHmmss)这么写后,还是抛异常了:从varchar数据类型到datetime数据类型的转换产生一个超出范围的值。语句已终止。

支持(0) 反对(0) JenasYang | 园豆:146 (初学一级) | 2018-01-11 19:00

@JenasYang: 你的数据库字符串没有拼接成功,正确的方式:

Module.ExecuteSql("UPDATE [jianhui_sys_admin] SET [online]=1,[lastlogin]=" + DateTime.Now.ToString() + ",[click]=[click]+1 where jianhui_id=" + dt.Rows[0]["jianhui_id"].ToString());

参考地址

支持(0) 反对(0) Bluto | 园豆:317 (菜鸟二级) | 2018-01-11 19:33

@Bluto: 按你这样写:提示:“星期四”附近有语法错误。

所以单引号还是不能去掉的。

支持(0) 反对(0) JenasYang | 园豆:146 (初学一级) | 2018-01-11 19:42

@JenasYang: dateTime.Now怎么会出来星期四呢?

支持(0) 反对(0) Bluto | 园豆:317 (菜鸟二级) | 2018-01-11 19:43

@Bluto: 我Response.Write(DateTime.Now.ToString()); 页面显示的日期时间是2018/1/11 星期四 下午 7:50:54这种格式。

支持(0) 反对(0) JenasYang | 园豆:146 (初学一级) | 2018-01-11 19:51

@JenasYang: DateTime.Now.ToString("yyyy-MM-dd HHmmss")用这个格式

支持(0) 反对(0) Bluto | 园豆:317 (菜鸟二级) | 2018-01-11 19:56

@Bluto: 依然提示有语法错误的。

支持(0) 反对(0) JenasYang | 园豆:146 (初学一级) | 2018-01-11 20:00

@JenasYang: 额。。。 给你一个方法 ,你试一下: 调试程序 看一下生成 SQL语句 ,然后将生成的sql 语句 放到数据库 执行一下,看一下是哪里的错误,修改一下错误。

支持(0) 反对(0) Bluto | 园豆:317 (菜鸟二级) | 2018-01-11 20:59

@Bluto: 不明白你说的意思啊

支持(0) 反对(0) JenasYang | 园豆:146 (初学一级) | 2018-01-11 21:02

@JenasYang: 下断点 调试,将那个update的sql字符串拿出来,放到数据库中的查询窗口执行。看哪里报错,然后在慢慢修改,将能在查询窗口中正确执行的SQL语句 和你原先拿过来的sql语句对比一下,不就知道问题出在哪里了。

支持(0) 反对(0) Bluto | 园豆:317 (菜鸟二级) | 2018-01-11 21:07
0

日期格式转换一下就可以了

刘竹青 | 园豆:111 (初学一级) | 2018-01-11 13:57
0
日期转换格式出错,这个换成:DateTime.Now.ToString("yyyy/MM/dd HHmmss")

   

收获园豆:5
华临天下 | 园豆:1501 (小虾三级) | 2018-01-11 16:10

这么写又抛出另一个错误了:从varchar数据类型到datetime数据类型的转换产生一个超出范围的值。语句已终止。

支持(0) 反对(0) JenasYang | 园豆:146 (初学一级) | 2018-01-11 18:55

@JenasYang: DateTime.Now.ToString("yyyy/MM/dd")这个应该能行,实在不行的话。去数据库监视一下看看,那个语句到底哪儿错了。。。

支持(0) 反对(0) 华临天下 | 园豆:1501 (小虾三级) | 2018-01-12 09:13
0

你刚才回复一个回答的时候

那么你应该写的时间使用varchar类型的。

而且会转换失败,你应该是日期存储格式不对,建议你看一看存储在数据库中的日期格式(大神,别喷我)

123爱迪生发松岛枫 | 园豆:256 (菜鸟二级) | 2018-01-11 22:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册