如何在数据库中获取日期时间数据?

时间:2016-06-01 16:01:17

标签: c# sql-server datetime

我试图从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;
}

1 个答案:

答案 0 :(得分:0)

  

System.IndexOutOfRangeException

这假设有一个名为Tarih的列:

drr["Tarih"]

但是没有。仔细查看查询:

Select Max(Tarih) from Yoklama ...

查询使用该列,但实际上生成该列。它会生成一个计算列,该列将具有一些默认名称。

您可以在查询中指定该列的名称:

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

或者只是选择结果中的第一个(基本上只有)列:

drr[0]