如何从mysql datetime字段中读取

我试图从具有日期时间类型的mysql字段读取,我正在尝试所有内容,并且始终只返回字段名称。

这是我的代码:

using (MySqlConnection connection = new MySqlConnection(ConnectionString)) { connection.Open(); string query = @"SELECT `sID`, 'sDate', `sGameLogin`, `dGameAmount`, 'sPayMethod' FROM `XeronRequests` WHERE `iStatus` = 0"; MySqlCommand cmd = new MySqlCommand(query, connection); cmd.CommandType = CommandType.Text; using (MySqlDataReader dataReader = cmd.ExecuteReader()) { while (dataReader.Read()) { list.Add(new PaymentInfoText(dataReader["sID"] + "", dataReader["sDate"] + "", dataReader["sGameLogin"] + "", dataReader["dGameAmount"] + "", dataReader["sPayMethod"] + "")); } } e.Result = list; } 

使用

 dataReader.GetDateTime(dataReader.GetOrdinal("sDate")) 

代替

 dataReader["sDate"] + "" 

并删除sql中列周围的刻度,例如

sDate而不是'sDate' 。 只有保留字或者列名中有空格时才需要它们:

9.3。 保留字

2.2。 MySQL 5.1中的保留字

问题是你的SELECT语句,你有单引号'而不是sDate周围的sDate ,因此该字段的值实际上是"sDate"

或者正如Jon Skeet所说,完全摆脱后面的滴答声,因为它们仅存在于关键字中,必须像[]为MSSQL做的那样。