题
我不知道什么是错的以下字符串:
"Report(" + System.DateTime.Now.ToString("dd-MMM-yyyy") + " to " + System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy") + ")"
我不能得到的连接字符串。我越来越Report(29-Dec-2009
。这一切和
其余部分被从字符串省去。
的原因是什么?
解决方案
尝试这种情况:
string filename =
String.Format(
"Report({0:dd-MMM-yyyy} to {1:dd-MMM-yyyy})",
System.DateTime.Now, System.DateTime.Now.AddMonths(-1));
编辑:由于在下载框你有你的文件名中的第一个空格坏了,你可以尝试下列操作之一:
filename = HttpUtility.UrlEncode(filename); // OR
filename = """" + filename + """";
似乎有些浏览器不把手空格非常漂亮:文件名用空格在下载截断。请检查它,你可以下载其他文件名与其他网站的空白。
其他提示
您需要将其分配到的东西:
string s = "Report(" + System.DateTime.Now.ToString("dd-MMM-yyyy") + " to " + System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy") + ")"
更新:我刚才看到你更新的问题。你是如何显示的字符串?我猜你是在一个图形用户界面显示出来,并且标签太短显示完整的文本。
尝试这种情况:
string newstring =
string.Format(
"Report ({0} to {1})",
System.DateTime.Now.ToString("dd-MMM-yyyy"),
System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy")
);
你在分配结果?如果你使用的String.format这将是更容易阅读的代码
您没有指定连接的结果中任何东西,所以不能使用它:
string myConcatenated = "Report(" + System.DateTime.Now.ToString("dd-MMM-yyyy") + ")";
使用此代码...
string test = "Report(" + System.DateTime.Now.ToString("dd-MMM-yyyy") + " to " +
System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy") + ")";
我看到以下结果。
Report(29-Dec-2009 to 29-Nov-2009)
这可能是因为该字符串被稍后截断。请确保您在运行此代码后设置一个断点权并检查其分配(在我的测试)变量的值。
如果,在你的前面的问题一>,你正在使用这个值来创建一个文件,这可能是因为它的前“到”导致该问题的空间。尝试使用:
"Report("
+ System.DateTime.Now.ToString("dd-MMM-yyyy")
+ "To"
+ System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy")
+ ")"
代替,看看是否修复它。
如果是的不的修复它,你可能需要或者弄明白所以它不是作为三个独立的参数,"Report(29-Dec-2009"
,"to"
和"29-Nov-2009)"
处理如何引用整个文件名。或者干脆离开你的报告的名字没有空格。
我会选择后者,但随后我从根本上反对空格的文件名 - 他们做简单的脚本中,这样更难写: - )
不隶属于 StackOverflow