0

我使用ASP.NET存储在SQL Server 2008.

应用程序运行正常,但是几天后应用程序显示错误数据,当我进入某些页面时出现错误。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();

通常这些行完美无缺,数据表没有理由返回空。我得到的错误是:列'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

由于某种原因,某些列没有返回..

4

3 回答 3

0

如果你的代码是正确的。您是Creation_datetime从 .NET 代码调用的,但在 SQL 中您没有这样的列,您所拥有的只是一个Creation date 来自您的SELECT查询)。

所以,要解决你的问题,你需要做的就是改变

dt_YC_Last_Transaction.Rows[0]["Creation_datetime"]

dt_YC_Last_Transaction.Rows[0]["Creation_date"]

问题解决后,您应该学习一种使用显式名称查询数据库的更好方法,例如,使用对象而不是调用字符串值...您应该学习一些 Entity Framework 和 Linq,它将改进您的代码很多。

于 2013-07-09T10:25:50.457 回答
0

你在 asp.net 代码中的列名有 _ 例如 full_name 但在 sql 查询中它没有 _,我不知道你是否为你的数据表分配了名称,但请注意这个问题......

于 2013-07-09T09:47:06.633 回答
0

txtbx_contact_fullname.Text = dt_contact.Rows[0]["Contact Fullname"].ToString();
lbl_Creation_datetime.Text = dt_YC_Last_Transaction.Rows[0]["Creation datetime"].ToString();

于 2013-07-09T09:44:32.733 回答