2

我对从返回的值有疑问SqlCommand,我有以下代码:

string sqlSelect = "Select TOP 1 Quotation.SentToSupp as SentToSupp FROM Quotation JOIN Notifications ON Quotation.QuotationId = QuotationID ";

SqlCommand Comm = new SqlCommand(sqlSelect, this.Connection);

sqlSelect查询选择第一个DateTime值。当我打电话给我时,SqlCommand我想得到这个值(只有一个值)。我添加了查询并且我的连接很好。

但我不知道如何获得我的DateTime价值......必须使用类似的东西ExecuteReader

先感谢您!!

4

2 回答 2

8

ExecuteReader工作,但需要更多的对象和更多的代码 - (一个SqlDataReader,调用读取和提取值)。相反,您可以简单地使用对象的ExecuteScalar方法SqlCommand(它只返回结果集第一行的第一列)

string sqlSelect = "Select TOP 1 Quotation.SentToSupp as SentToSupp FROM ....";
SqlCommand Comm = new SqlCommand(sqlSelect, this.Connection);
object result = Comm.ExecuteScalar();
if(result != null)
   DateTime dtResult = Convert.ToDateTime(result);

请注意,如果由于某种原因,返回的结果中没有记录,则ExecuteScalar可能会返回一个值null

于 2013-04-05T11:05:07.850 回答
3

使用 SqlCommand.ExecuteScalar 方法 -执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。

于 2013-04-05T11:01:50.027 回答