无法隐式转换类型&System;日期时间'到'字符串'

时间:2014-05-06 13:47:52

标签: c# sql datetime

我正在尝试输出一个excel文件,其中一部分将一个名为outofstock的表中的createddate的值放入该行当前放置的0

如果我运行这个SQL它会显示一切正常

select wo.email, wo.productid, wo.variantid,  p.NAME pname,  
       p.SKU psku, wo.createdon, pc.CategoryID, c.Name
from woeosemails wo 
join Product p with (nolock) on p.ProductID = wo.productid
left join ProductCategory as pc (nolock) on p.ProductID=pc.ProductID
left join Category as c (nolock) on pc.CategoryID=c.CategoryID
order by wo.createdon, wo.email, wo.productid

问题在于生成输出的aspx.cs文件中的这一行

createdon = DB.RSFieldDateTime(NotifyReader, "createdon"); 

我不知道之前要放置什么类型(int,string等)。在SQL表中,DataType是datetime,但使用它似乎不起作用。

有什么想法吗?

string email = DB.RSField(NotifyReader, "email");
int productid = DB.RSFieldInt(NotifyReader, "productid");
int variantid = DB.RSFieldInt(NotifyReader, "variantid");
string createdon = DB.RSFieldDateTime(NotifyReader, "createdon"); 
string psku = DB.RSField(NotifyReader, "psku");
string pname = DB.RSField(NotifyReader, "pname");
string cname = DB.RSField(NotifyReader, "cname");

1 个答案:

答案 0 :(得分:4)

嗯,错误很明显:你不能自动将DateTime强制转换为字符串 你应该使用

DateTime createdon = DB.RSFieldDateTime(NotifyReader, "createdon");

string createdon = DB.RSFieldDateTime(NotifyReader, "createdon").ToString();

另请注意,您可以使用特定格式在字符串中表示日期(请参阅http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx