c# SqlCeDataReader getValue的日期返回不同格式的相同查询



我有以下代码

String sqlQuery = "SELECT * FROM table";
SqlCeDataReader reader = ConectorSQLCE.consultar(rutaArchivo, sqlQuery);
String value = "";
try
{
            while (reader.Read())
            {
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    if (reader.GetValue(i) == DBNull.Value)
                        value += "*";
                    else
                    {
                        value += reader.GetValue(i).ToString();
                    }
                }
            }
}

reader.GetValue(i)datetime字段时,有时返回01/01/2014 0:00:00,有时返回01/01/2014 12:00:00 a.m.

为什么会发生这种情况?字符串值然后用于散列代码,所以我对同一行有不同的散列。

不知道为什么会这样做,但如果时间字段总是相同的,为什么不将其转换为.ShortDateString(),那么您就不必担心不一致。如果您按名称调用所需的每个列并使用convert(varchar,dateField,101)

,您也可以在sql端转换它

最新更新