我正在尝试使用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;
}
答案 0 :(得分:3)
使用
dataReader.GetDateTime(dataReader.GetOrdinal("sDate"))
而不是
dataReader["sDate"] + ""
并删除sql中列的刻度,例如
sDate
代替'sDate'
。只有保留字或者列名中有空格时才需要它们:
答案 1 :(得分:0)
问题在于您的SELECT
声明,您使用单引号'
而不是sDate
附近的后退标记,因此该字段的值实际上是"sDate"
。< / p>
或者正如Jon Skeet所说,完全摆脱后面的滴答声,因为它们只存在于关键词中,必须像[]
那样为MSSQL做。