0

最初に2つのtextBoxがあり、この形式の日付があります:2012.09.20、2番目の形式にあるのはTime:15:30:00です。データベースには、列名「Eventstart」タイプがあります:DateTime。今、私は2つのテキストボックスから値を取得し、次のようなものに配置するのが好きです。

DateTime end = Convert.ToDateTime(TextBoxEnd.Text) + Convert.ToDateTime(TextBoxTimeEnd.Text);

しかし、このエラーを教えてください:エラー2演算子「+」はタイプ「System.DateTime」および「System.DateTime」のオペランドには適用できません

4

4 に答える 4

4

次のものを使用する必要があるようです。

DateTime date = Convert.ToDateTime(TextBoxEnd.Text);
DateTime time = Convert.ToDateTime(TextBoxTimeEnd.Text);
DateTime combined = date.Date + time.TimeOfDay;

または、テキストを組み合わせて、それを解析することもできます。

DateTime dateTime = Convert.ToDateTime(TextBoxEnd.Text + " " +
                                       TextBoxTimeEnd.Text);

ただし、使用するかどうかはまったくわかりません。Convert.ToDateTimeテキストボックスの正確な形式がわかっている場合は、を使用する必要がありますDateTime.TryParseExact。ただし、その場合はどのカルチャを使用するかを検討する必要があります。真に固定された正確な形式の場合CultureInfo.InvariantCultureは、適切な場合があります。カルチャ固有の形式の場合は、ユーザーのカルチャを使用します。

また、テキストボックスをまったく使用しない代替のUI表現を使用することもできます。これにより、文字列変換で問題が発生する可能性を回避できます。

于 2012-09-20T12:10:36.650 に答える
2

TextBoxesテキストを連結し、DateTime.ParseExactをフォーマットで使用します"yyyy.MM.dd HH:mm:ss"

テキストを連結した後、次のようになります。"2012.09.20 15:30:00"

DateTime dt = DateTime.ParseExact(TextBoxEnd.Text + " " + TextBoxTimeEnd.Text, 
                                  "yyyy.MM.dd HH:mm:ss", 
                                  CultureInfo.InvariantCulture);
于 2012-09-20T12:11:52.750 に答える
0

あなたは次のようなことを試しましたか

DateTime end = Convert.ToDateTime(TextBoxEnd.Text) + TimeSpan.Parse(TextBoxTimeEnd.Text);
于 2012-09-20T12:12:24.910 に答える
0

最初に両方の値を連結してから、それをDateTime変数に追加します

例:

string str = date.Text + time.Text;  // assumed date and time are textboxes

DateTime dt=new DateTime();
DateTime.TryParse(str,dt); // returns datetime in dt if it is valid
于 2012-09-20T12:10:28.333 に答える