如何从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做的那样。