文字列の連結は、C#で動作していないよう
-
21-09-2019 - |
質問
私は次の文字列と間違っているかわからない。
"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)
これは、文字列が後に切り捨てられている可能性があります。このコードが実行された後、あなたは、ブレークポイントの右側を設定していることを確認し、それは(私の場合のテストを)割り当てられている変数の値をチェックします。
もし、あなたの前の質問のように、あなたは、ファイルを作成するには、この値を使用している>、、それが問題を引き起こしている「から」前にスペースだということかもしれません。使用してみてください。
"Report("
+ System.DateTime.Now.ToString("dd-MMM-yyyy")
+ "To"
+ System.DateTime.Now.AddMonths(-1).ToString("dd-MMM-yyyy")
+ ")"
の代わりに、それは修正してかどうかを確認します。
それはののそれを修正した場合は、は、おそらくそれは3つの別々の引数、"Report(29-Dec-2009"
、"to"
と"29-Nov-2009)"
として扱われていないので、ファイル名全体を引用する方法をいずれか把握する必要があります。それとも単にスペースを入れずにレポート名を残しています。
私は後者が、その後、私は基本的にファイル名にスペースに反対しています]を選択したい - 彼らはそんなに難しく書き込みに簡単なスクリプトを作る: - )