在登录页面输入用户和密码后登录,出现此错误,请问是哪里出现问题呢?
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());
没有找到解决办法,关闭问题。
贴代码啊--
不知道你用的是什么数据库,你可以用数据库中的getdate()
函数,来判断一下数据库中的日期字符串格式。然后将
DateTime.Now
ToString()
得时候 转化为对应的格式。可能方法比较笨。应该能解决问题的。
数据库中的时间格式是: yyyy-MM-dd HHmmss这样的,DateTime. Now.toString(yyyy-MM-dd HHmmss)这么写后,还是抛异常了:从varchar数据类型到datetime数据类型的转换产生一个超出范围的值。语句已终止。
@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());
@Bluto: 按你这样写:提示:“星期四”附近有语法错误。
所以单引号还是不能去掉的。
@JenasYang: dateTime.Now
怎么会出来星期四呢?
@Bluto: 我Response.Write(DateTime.Now.ToString()); 页面显示的日期时间是2018/1/11 星期四 下午 7:50:54这种格式。
@JenasYang: DateTime.Now.ToString("yyyy-MM-dd HHmmss")
用这个格式
@Bluto: 依然提示有语法错误的。
@JenasYang: 额。。。 给你一个方法 ,你试一下: 调试程序 看一下生成 SQL语句 ,然后将生成的sql 语句 放到数据库 执行一下,看一下是哪里的错误,修改一下错误。
@Bluto: 不明白你说的意思啊
@JenasYang: 下断点 调试,将那个update的sql字符串拿出来,放到数据库中的查询窗口执行。看哪里报错,然后在慢慢修改,将能在查询窗口中正确执行的SQL语句 和你原先拿过来的sql语句对比一下,不就知道问题出在哪里了。
日期格式转换一下就可以了
这么写又抛出另一个错误了:从varchar数据类型到datetime数据类型的转换产生一个超出范围的值。语句已终止。
@JenasYang: DateTime.Now.ToString("yyyy/MM/dd")这个应该能行,实在不行的话。去数据库监视一下看看,那个语句到底哪儿错了。。。
你刚才回复一个回答的时候
那么你应该写的时间使用varchar类型的。
而且会转换失败,你应该是日期存储格式不对,建议你看一看存储在数据库中的日期格式(大神,别喷我)