2011-07-11 12 views
1

トレーニングクラスのコース補完を格納するOracleデータベースに接続する小さなアプリケーションがあります。データベースには従業員名、従業員番号、コースが完了した日付、およびコースの名前があります。可能System.DateTimeオブジェクト DataRowの内部にあるDateTimeオブジェクトからデータを引き出しますか?

  • [1] - - Stringオブジェクト

    • [0]:

        String strPerIdNo = textBox1.Text; 
            String strQuery = "PER_ID_NO = " + "'" + strPerIdNo + "'"; 
            DataRow[] foundRows; 
            foundRows = dataSet1.DataTable1.Select(strQuery); 
      

      行は5つの要素の配列を含んでいます。私は1つの行を返すコード、下図を有します

    • [2] - intオブジェクト
    • [3] - 文字列オブジェクト
    • [4] - 文字列オブジェクト

    [0]の配列のDateTimeオブジェクトからDateTimeオブジェクトをインスタンス化したいのですが、どのようにして取り出すことができません。私はコースを完了したempの名前と日付を含むメッセージを表示したい。

    ありがとうございました!

  • 答えて

    3

    さて、まず、あなたはここで何をインスタンス化していない、(そうでないか、それはのDataRowにはならないだろう!)。また、DateTimeは参照型ではなく値型です。値の型をインスタンス化することを考えるのは普通ではありません。それらを初期化またはコピーするだけです。

    あなたが探しているのは、DataRowのDateTime要素の値を取得することです。手順は次のとおりです。

    //step 0: make sure there's at least one DataRow in your results 
    if (foundRows.Length < 1) { /* handle it */ } 
    
    //step 1: get the first DataRow in your results, since you're sure there's one 
    DataRow row = foundRows[0]; 
    
    //step 2: get the DateTime out of there 
    object possibleDate = row["TheNameOfTheDateColumn"]; 
    
    //step 3: deal with what happens if it's null in the database 
    if (possibleDate == DBNull.Value) { /* handle it */ } 
    
    //step 4: possibleDate isn't a DateTime - let's turn it into one. 
    DateTime date = (DateTime)possibleDate; 
    
    +0

    驚くばかり!ありがとう、それはうまくいった。ステップ4で何が起こっているのか少し教えていただけますか?私はそのような声明を見たことがない。 – Dbloom

    +0

    (Type)variableNameがある場合、variableNameをカッコ内のデータ型にキャストします。この場合、型 "object"から "DateTime"を入力します。あなたは互換性のある型でしかそれを行うことができません。たとえば、DateTimeとして開始した場合(この場合はSql Server内に存在していた場合)にのみ、オブジェクトをDateTimeに変換することができます。型変換は非常に大きな話題なので、面白いことを学んでください! – hoodaticus

    +0

    説明に感謝します。 – Dbloom

    1

    DateTimeオブジェクトの場合、それをキャストしないのはなぜですか?すでに希望日時が存在するため、同様

     
    foreach(DataRow row in foundRows) { 
        var dt = (DateTime)row[0]; 
    } 
    
    関連する問題