关于c# . net 1.1的问题。
如何使用DateTime比较在DataTable上执行Select操作,并且仍然避免System。DateTime -系统。字符串不匹配,而在其他国家的日期格式中进行比较。
string strSel = String.Format("LAST_QUEUED > '{0}'", DateTime.Now);
DataRow[] drArr = DataSetX.TableX.Select(strSel);
LAST_QUEUED起源于美国的Oracle DateTime字段,读入一个DateTime类型的等效类型化数据集表字段。以上选择是在西班牙完成的。
在。net 1.1中,我用"{0}"和在。net 4.0 #{0} #。然而,当我们在西班牙运行。net 1.1版本时,我得到一个错误,"Cannot perform> operation on System "。日期时间和系统。(有意义)。如果我仍然使用。net 1.1转换为#{0}#格式化器,那么我得到"String未被识别为有效的DateTime " ,所以可能格式化器在不同版本之间发生了变化。
变化
String.Format("LAST_QUEUED > '{0}'", DateTime.Now);
String.Format("LAST_QUEUED > '{0}'", " ' "
+DateTime.Now.ToString("dd/MM/yyyy")+ " '";
我最终选择的解决方案是在系统中使用CultureInfo.InvariantCulture.DateTimeFormat格式化器。全球化名称空间。
string strSel = String.Format(CultureInfo.InvariantCulture.DateTimeFormat, "LAST_QUEUED > '{0}'", DateTime.Now);
DataRow[] drArr = DataSetX.TableX.Select(strSel);
见:https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture%28v=vs.110%29.aspx