質問

私は次の文字列と間違っているかわからない。

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

アップデート:私はちょうど疑問に、あなたの更新を見ました。どのように文字列を表示していますか?私はあなたがGUIで表示され、ラベルが完全なテキストを表示するには短すぎることを推測してます。

これを試してみてください

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)

これは、文字列が後に切り捨てられている可能性があります。このコードが実行された後、あなたは、ブレークポイントの右側を設定していることを確認し、それは(私の場合のテストを)割り当てられている変数の値をチェックします。

scroll top