这是我第一次在 .Net MVC 中查询数据库存储过程。该过程返回零行(意味着用户从未输入过数据)或一行,其中一列称为 [When],其中包含日期。
我有一个 DataHelper 类,我在其中编写了以下方法来查询存储过程。
DataHelper 类方法
public static DataSet Measurements_GetLastMeasurement(Guid UserID)
{
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(CONN_STRING))
{
conn.Open();
System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand();
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "dbo.Measurements_GetLastMeasurement";
comm.Parameters.AddWithValue("@UserID", UserID);
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(comm);
System.Data.DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
这很简单,它将数据传递到控制器,然后传递到我迷路的视图。如果此查询的结果返回一个日期,我想将该日期打印到屏幕上。如果它返回 null 我想存储 null 值并对其运行条件。这是我当前设置部分控制器方法来处理此问题的方式。
控制器方法
public ActionResult ChartView()
{
var authHelper = new stuff.for.auth();
var userSession = authHelper.GetUserSession();
// get users last data entry date
DataSet ds = Measurements_GetLastMeasurement(userSession.UserIDNative);
foreach (DataRow dr in ds.Tables[0].Rows)
{
DateTime lastEntryDate = dr["When"];
}
ViewData["LastEntryDate"] = lastEntryDate;
return PartialView();
}
然后从视图中,我认为我应该能够通过将 ViewData["LastEntryDate"] 设置为变量并将其显示在 html 中或使用 Javascript 来检查值是否为空来访问数据。非常感谢任何澄清或指导!