【发布时间】:2016-07-30 14:47:39
【问题描述】:
我有一个名为 Label1 的标签。我正在尝试使用过程从数据库中提取一个值并分配给它。但这不起作用。
处理结果 -
Mean_time
----------
528
调用PROC的函数
public DataSet getMeanTime()
{
DataSet dsMeanTime = new DataSet();
dsMeanTime = SqlHelper.ExecuteDataset(sqlConn, CommandType.StoredProcedure, "sp_getMeanWorkingTime");
return dsMeanTime;
}
网页控制-
DataSet dsChartDetails = new DataSet();
helper hr = new helper();
protected void Page_Load(object sender, EventArgs e)
{
GenerateChart();
}
private void GenerateChart()
{
dsChartDetails = hr.getMeanTime();
Label1.Text = WHAT TO WRITE HERE ;
}
如果我试试这个
Label1.text = dsChartDetails.Tables[0].Rows[0].Field<string>(0).ToString();
我收到此错误 -
无法将“System.Int32”类型的对象转换为“System.String”类型。
我的目标是使用过程调用使用标签简单地显示数据库中的值。
【问题讨论】:
-
与您的问题无关,但避免将
sp_用于存储过程。此前缀用于标识系统存储过程,在搜索它们时处理方式略有不同。如果你想要一个前缀,我可能会建议usp_用于“用户存储过程”。 -
我会说“sp_”不是问题,但使用数据集返回单个值是一种矫枉过正。使用 ExecuteScalar 而不是 ExecuteDataset。它在执行方面会更快,在编码方面会更容易。
标签: c# sql asp.net webforms web-controls