【发布时间】:2013-02-21 15:03:20
【问题描述】:
我正在使用SqlDataReader 并在尝试读取列时收到此异常...
System.IndexOutOfRangeException: 记录
这里是代码...
SqlCommand select = new SqlCommand("SELECT RTRIM(LTRIM(PART_NO)) AS PART_NO, record AS CUSTOMER_NO FROM [RMAData].[dbo].[IMPORTING_ORDER_EDI] WHERE sessionID = '" + Session.SessionID + "'", connection);
SqlDataReader reader = select.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
lblWebMasterMessage.Text += "record " + reader["record"].ToString() + "<br />";
...
如果我将 lblWebMasterMessage.Text 更改为以下内容,它就可以正常工作...
lblWebMasterMessage.Text += "record " + reader["PART_NO"].ToString() + "<br />";
SQL Server表中record和PART_NO的区别在于'record'是主键,int,PART_NO是varchar(100)。
问题是,我需要“记录”来识别记录以便稍后更新...
我真的不明白为什么它可以返回一个字段而不是另一个?
【问题讨论】:
-
Stuart 我建议您在使用
AS关键字时阅读SQL Aliasing,这是您需要在结果集中引用的字段,而不是数据库中的实际名称本身 -
我知道 sql 别名...这是一个愚蠢的错误,我只是看不到。树林和树木等等!
-
不是问题斯图尔特我想我可以看到..我只是提供一个意见没有伤害没有犯规
标签: c# asp.net sqldatareader