插入datetime列的值给出错误

时间:2017-01-30 12:44:53

标签: c# asp.net datetime

我有一个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");
            }

3 个答案:

答案 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());