我使用ASP.NET
构建了一个Web应用程序,数据存储在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
由于某些原因,有些专栏没有回来......
答案 0 :(得分: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();
答案 1 :(得分:0)
你在asp.net代码中的列名有_例如full_name但是在sql查询中它没有_,我不知道你是否已经为你的数据分配名称但是注意这个问题...
答案 2 :(得分:0)
如果你的代码是正确的。你是从.NET代码调用Creation_datetime
,但在SQL中你有没有这样的专栏,你所拥有的只是Creation date
(来自您的SELECT
查询。
所以,要解决您的问题,您需要做的就是更改
dt_YC_Last_Transaction.Rows[0]["Creation_datetime"]
到
dt_YC_Last_Transaction.Rows[0]["Creation_date"]
问题解决后,您应该学习使用显式名称查询数据库的更好方法,例如,使用对象而不是调用字符串值...您应该学习一点实体Framework和Linq,它将大大改善您的代码。