我试图从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 :(得分:0)
System.IndexOutOfRangeException
这假设有一个名为Tarih
的列:
drr["Tarih"]
但是没有。仔细查看查询:
Select Max(Tarih) from Yoklama ...
查询使用该列,但实际上生成该列。它会生成一个计算列,该列将具有一些默认名称。
您可以在查询中指定该列的名称:
Select Max(Tarih) AS Tarih from Yoklama ...
或者只是选择结果中的第一个(基本上只有)列:
drr[0]