我对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
之类的内容吗?
提前谢谢!!
答案 0 :(得分:8)
ExecuteReader
有效,但需要更多对象和更多代码 - (An SqlDataReader
,调用Read和Extract值)。相反,您只需使用SqlCommand
对象的ExecuteScalar
方法(它只返回结果集第一行的第一列)
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
值的事实
答案 1 :(得分:2)
使用SqlCommand.ExecuteScalar方法 - 执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。