我正在使用一个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 />";
记录和记录的区别PART_NO
在 SQL Server 表中,“记录”是主键,int
, PART_NO
is a varchar(100)
.
问题是,我需要“记录”来识别记录以便稍后更新......
我真的不明白为什么它可以返回一个字段而不是另一个字段?
那是因为您没有名为“record”的字段,您将其别名为“CUSTOMER_NO”,因此将代码更改为:
lblWebMasterMessage.Text += "record " + reader["CUSTOMER_NO"].ToString() + "<br />";
也就是说,您还可以使用索引而不是名称来读取第二列:
lblWebMasterMessage.Text += "record " + reader[1] + "<br />";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)