我有一个datetime
列,其值我将添加如下
xw.WriteElementString("EXPIREDATE", Convert.ToDateTime(txtEndDate.Text.ToString()));
但它正在给出错误
最佳重载方法匹配' System.Xml.XmlWriter.WriteElementString(string,string)'有一些无效的论点
如何解决它
更新
每当我不在文本框中添加日期时它就可以工作但是当我以dd/MM/yyyy
格式添加日期时,它不起作用。如何使它工作
代码
xw.WriteElementString("EXPIREDATE", txtEndDate.Text.ToString().Trim());
if (txtEndDate.Text != "")
{
DateTime enddate = Convert.ToDateTime(txtEndDate.Text.ToString());
DateTime sysdate = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"));
if (sysdate < enddate)
{
xw.WriteElementString("DELETE_FLAG", "N");
}
else
{
xw.WriteElementString("DELETE_FLAG", "Y");
}
}
else
{
xw.WriteElementString("DELETE_FLAG", "N");
}
答案 0 :(得分:4)
您的问题是,当方法需要字符串时,您正在传递DateTime。你需要这样的东西:
xw.WriteElementString("EXPIREDATE", DateTime.Parse(txtEndDate.Text).ToString("dd/MM/yyyy"));
另请注意,如果给定的字符串格式不正确,Convert.ToDateTime
将返回DateTime.Min
,而DateTime.Parse
将引发异常。您应该使用DateTime.TryParse
答案 1 :(得分:3)
正如错误所述,WriteElementString
方法需要2 string
值
xw.WriteElementString("EXPIREDATE", Convert.ToDateTime(txtEndDate.Text).ToString("dd/MM/yyyy"));
注意:强>
使用DateTime.TryParse
来控制txtEndDate.Text
是否有效datetime
,然后使用value
答案 2 :(得分:0)
正如它所提到的,你需要以string
格式传递两个参数,在你的情况下你的第一个参数是正确的,但下一个参数在datetime
中。因此,请尝试将其转换为string
xw.WriteElementString("EXPIREDATE", Convert.ToDateTime(txtEndDate.Text).ToString());