我的服务器的日期时间格式与客户端不同。在我的客户中,它使用PM / AM,而我的服务器使用24H格式。当我尝试在C#中使用DateTime
变量并在SQL Server中使用数据类型DateTime
时。在我的SQL Server 2020-06-16 14:54:33.937 中,当我尝试在服务器PC中运行时就可以了。但是当我尝试在客户端中运行我在SQL Server中的日期时,它将返回int32
(不同格式)。
我将 dapper 用于SQL Server帮助程序。这是我选择表格的功能
private static void get_chat()
{
ConnectDB();
string sql = "SELECT * FROM chat where to_user = " + MyLogin.id + " OR from_user = " + MyLogin.id;
var queryResult = cnn.Query<SQLServer_Chat>(sql);
SQLServer_Olah.Olah_Chat(queryResult);
ArrayList list_id = SQLServer_Olah.List_chat_id(queryResult);
CloseDB();
get_chat_det(list_id);
}
这是我的SQLServer_Chat
class SQLServer_Chat
{
public int id_chat { set; get; }
public int to_user { set; get; }
public int from_user { set; get; }
public string last_chat { set; get; }
public int to_unread { set; get; }
public int from_unread { set; get; }
public DateTime created_at { set; get; }
public DateTime last_chat_time { set; get; }
public string to_name { set; get; }
public string from_name { set; get; }
}
希望任何人都可以帮助我解决这个错误,谢谢!!
答案 0 :(得分:3)
由于您说数据库中的列为datetime
,所以坦率地说:格式不存在。我期望的问题是您不正确地保存 ,因为您没有使用参数。显示的查询实际上应该是:
var queryResult = cnn.Query<SQLServer_Chat>(
"SELECT * FROM chat where to_user = @id OR from_user = @id", new { MyLogin.id });
匿名类型(new { ... }
)告诉Dapper添加一个名为id
的参数,其类型和值是通过评估MyLogin.id
获得的。
如果我们假设您的保存代码也不使用参数:则-数据库中的数据现在完全不正确。解决方案:使用参数;此修复程序: