2016-06-01 8 views
-2

私はSQL ServerからC#に日付を取得しようとしています。私はそれをすることができませんでした。データベースに日時データを取得するには?

私は日付を取得できません。私はちょうどMM/DD/YYのような日付情報が必要で、06/26/2009 00:00:00:000のようではなく、時間情報は必要ありません。

このコマンドテキストをSQL Serverで試すと、機能します。

私はこのコードをしようとすると、

date = drr["Tarih"].toString(); 

部分で、私はエラー

System.IndexOutOfRangeException

コードを取得:

SqlConnection con; 
SqlCommand cmd; 
string date; 

public string getDate(int noo, int idd) 
{ 
     int no = noo; 
     int id = idd; 

     con = new SqlConnection(@"Data Source=AHMET\SQLEXPRESS; Initial Catalog=yoklama; Integrated Security=True"); 

     cmd = new SqlCommand(); 

     cmd.Connection = con; 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "Select Max(Tarih) from Yoklama where Ogrenci_NO = '" + no + "' and Ders_ID = '" + id + "' "; 

     try 
     { 
      con.Open(); 

      SqlDataReader drr = cmd.ExecuteReader(); 

      while(dr.Read()) { 
       date = drr["Tarih"].ToString(); 
      } 
     } 
     catch (SqlException) 
     { 
      // error here 
     } 
     finally 
     { 
      con.Close(); 
     } 

     return date; 
} 
+0

を。戻り値の型はintです。 tarih = dr ["Tarih"];仕事でさえ?私はあなたがどこに接続を開くか分からない。書式を修正します。 – Paparazzi

+0

それは私の悪いことでした、私は多くのことを試しました、私はそれを修正することを忘れないでください – Ahmet

+0

その後、質問を修正します。そして、書式を修正してください。答えは質問と同じくらい良いです。あなたが質問を解決しないと、これは終了する可能性が高いです。 – Paparazzi

答えて

0

System.IndexOutOfRangeException

これはTarihという名前の列があることを前提としています

drr["Tarih"] 

がしかし、そこではありません。

Select Max(Tarih) from Yoklama ... 

クエリ用途その列を、実際列を生成しません:クエリをよく見ます。これは、デフォルトの名前を持つ計算列を生成します。

クエリで、その列の名前を指定することができます。

Select Max(Tarih) AS Tarih from Yoklama ... 

または多分ちょうど最初の(そして基本的には唯一の)結果の列を選択:これは台無しにされ

drr[0] 
+0

それは動作しません、なぜ私はなぜ..知らないデータがあります – Ahmet

+0

@Ahmet:どのように失敗するのですか?実際のSQLクエリは何を返しますか? 'dr [" Tarih "]'には何がありますか? 'dr'には行が含まれていますか? 「うまくいかない」というのは、本当に問題の説明ではありません。 – David

+0

私は質問を修正しました – Ahmet

関連する問題