0

我不知道以下字符串有什么问题:

"Report(" + System.DateTime.Now.ToString("dd-MMM-yyyy") + "  to  " + System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy") +  ")"

我无法获得连接的字符串。我越来越Report(29-Dec-2009。这就是全部,其余的都被排除在字符串之外。

是什么原因?

4

7 回答 7

9

试试这个:

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 + """";

似乎有些浏览器不能很好地处理空格:带空格的文件名在下载时被截断。请检查您是否可以在其他站点下载其他带有空格的文件名。

于 2009-12-29T12:34:29.687 回答
3

您需要将其分配给某些东西:

string s = "Report(" + System.DateTime.Now.ToString("dd-MMM-yyyy") + " to " + System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy") + ")"

更新:我刚刚看到你对这个问题的更新。你如何显示字符串?我猜您是在 GUI 中显示它,并且标签太短而无法显示完整的文本。

于 2009-12-29T12:33:20.843 回答
2

试试这个:

string newstring = 
  string.Format(
                "Report ({0} to {1})", 
                System.DateTime.Now.ToString("dd-MMM-yyyy"), 
                System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy")
               );
于 2009-12-29T12:34:00.957 回答
1

你将结果分配给什么?如果使用 string.Format 会更容易阅读代码

于 2009-12-29T12:33:03.340 回答
1

您没有将连接的结果分配给任何东西,所以不能使用它:

string myConcatenated = "Report(" + System.DateTime.Now.ToString("dd-MMM-yyyy") + ")";
于 2009-12-29T12:34:01.547 回答
0

使用此代码...

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)

可能是字符串稍后被截断。确保在运行此代码后立即设置断点并检查分配给它的变量的值(在我的情况下为测试)。

于 2009-12-29T12:37:50.177 回答
0

如果像您之前的问题一样,您正在使用此值来创建文件,则可能是“to”之前的空格导致了问题。尝试使用:

"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)". 或者干脆让您的报告名称不带空格。

我会选择后者,但我从根本上反对文件名中的空格——它们使简单的脚本更难编写:-)

于 2009-12-29T13:09:16.820 回答