Stu*_*art 3 c# asp.net sqldatareader
我正在使用a 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 />";
...
Run Code Online (Sandbox Code Playgroud)
如果我更改lblWebMasterMessage.Text为以下它工作得很好......
lblWebMasterMessage.Text += "record " + reader["PART_NO"].ToString() + "<br />";
Run Code Online (Sandbox Code Playgroud)
记录与PART_NOSQL Server表之间的区别在于'record'是主键int,PART_NO而a是varchar(100).
问题是,我需要'记录'来识别记录以便以后更新它...
我真的不明白为什么它可以返回一个字段而不是另一个字段?
Sha*_*ard 10
那是因为你没有名为"record"的字段,你把它别名为"CUSTOMER_NO",所以将代码更改为:
lblWebMasterMessage.Text += "record " + reader["CUSTOMER_NO"].ToString() + "<br />";
Run Code Online (Sandbox Code Playgroud)
也就是说,您也可以使用索引而不是名称来读取第二列:
lblWebMasterMessage.Text += "record " + reader[1] + "<br />";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5200 次 |
| 最近记录: |