我正在尝试输出一个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");
答案 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)