需要SQL查询调试

Moo*_*oon 1 c# sql debugging dataset winforms

我正在使用C#进行winforms.继承我的代码

query = "SELECT max(Appointment_Time) FROM Appointments WHERE (Appointment_Status = 'D')";
dset = db.GetRecords(query,"Appointments");
ctime_Label.Text = dset.Tables["Appointments"].Rows[0]["Appointment_Time"].ToString();
Run Code Online (Sandbox Code Playgroud)

db.GETRecords是为我提供sql-services的类的函数,只返回一个数据集.我一直得到错误"列'Appointment_Time'不属于表Appointments"这是愚蠢的cuz

  • 当我插入值其工作正常.
  • 当我不使用max(Appointment_Time)函数时,它工作正常

这是问题..我认为与max()函数有关.任何建议或替代方案

mar*_*ton 6

当您在SELECT子句中应用函数时,服务器必须为结果列选择一个名称,这通常反映了函数正在执行的操作 - 类似于max(Appointment_Time).用作函数参数的字段似乎是"隐藏的".这就是为什么Appointment_Time在您的情况下该字段对于调用代码是不可见的.

您应该使用SQL指定要在聚合字段中调用的内容AS,例如:

SELECT max(Appointment_Time) AS Max_Appointment_Time
FROM Appointments WHERE (Appointment_Status = 'D')
Run Code Online (Sandbox Code Playgroud)

然后Max_Appointment_Time在调用代码中引用该字段.如果您愿意,可以使用与源字段相同的名称.