我使用ASP.NET构建了一个web应用程序,数据存储在SQL Server 2008上。
应用程序正在运行ok,,但是有一天,应用程序显示了错误的数据,当我输入一些页面时会出错。系统5分钟后自行恢复正常工作。
有人能告诉我问题出在哪里吗?
我在试图从检索到的DataTable获取数据的行上出错:例如:
txtbx_contact_fullname.Text = dt_contact.Rows[0]["Contact_Fullname"].ToString();或
lbl_Creation_datetime.Text = dt_YC_Last_Transaction.Rows[0]["Creation_datetime"].ToString();通常,这些行工作得很好,而且datatable没有理由返回空的。我得到的错误是:列'xxxxx‘不属于表。
检索数据的查询是:
SELECT [Request ID],[Creation Date],[Request Status],[Contact Fullname],[Start Date],[Start Time],[End Date],[End Time],[Work Mode],[Comments],[HPM Points],[FA Points]
FROM dbo.vw_All_Requests
WHERE [Request Status] = @YellowCard_Status
ORDER BY [Creation Date] DESC出于某种原因,有些列没有回来。
发布于 2013-07-09 09:47:06
您在asp.net代码中的列名有_例如full_name,但是在sql中没有_,我不知道您是否为datatable分配了名称,但请注意这个问题……
发布于 2013-07-09 10:25:50
如果你的代码是正确的。您正在从Creation_datetime代码中调用.NET,但是在中没有这样的列,您所拥有的是一个Creation date only (来自SELECT查询)。
所以,要解决你的问题,你所需要做的就是改变
dt_YC_Last_Transaction.Rows[0]["Creation_datetime"]至
dt_YC_Last_Transaction.Rows[0]["Creation_date"]问题是固定的之后,您应该学习使用显式名称查询数据库的更好方法,例如,使用对象来调用字符串值.您应该学习一些实体框架和Linq,它将大大改进您的代码。
https://stackoverflow.com/questions/17543010
复制相似问题