请教 C# datatable一题:

[复制链接]
查看11 | 回复2 | 2010-10-14 18:21:05 | 显示全部楼层 |阅读模式
程序中 DBHelper.cs中有个方法:
如果我程序中这样调用全正常:
DataTable dt = DBHelper.DBHELPER.GetDataSet("select * from IO_CONTROL");// 此方法带参数不行
string STOCK_BARCODE = dt.Rows[0][3].ToString();

但是################
DataTable dt = DBHelper.DBHELPER.GetDataSet("select * from IO_CONTROL where CONTROL_STATUS = 1 and (START_DEVICE_CODE = '02-01-01' or END_DEVICE_CODE = '02-01-01') ");
string STOCK_BARCODE = dt.Rows[0][3].ToString();
这样的 就是提示超出数组下标(System.IndexOutOfRangeException)
这个也错
DataTable dt = DBHelper.DBHELPER.GetDataSet("select * from IO_CONTROL where CONTROL_STATUS = 1");
谢谢!
我的意思我已经知道它有多少列了 ,出问题不是判断的是,我想知道在C#中
DBHelper.DBHELPER.GetDataSet("select * from IO_CONTROL where CONTROL_STATUS = 1 and (START_DEVICE_CODE = '02-01-01' or END_DEVICE_CODE = '02-01-01') ");
这么写问什么错误。在SQL Server中建立查询 SELECT TOP 1 *
FROM [WMS_BJJD].[dbo].[IO_CONTROL] where CONTROL_STATUS = 1 and
(START_DEVICE_CODE = '02-01-01' or END_DEVICE_CODE = '02-01-01' );
这样写是没问题的。
*************************************
IO_CONTROL有数据,第一中语句都可以取出对应字段的值。

回复

使用道具 举报

千问 | 2010-10-14 18:21:05 | 显示全部楼层
在使用string STOCK_BARCODE = dt.Rows[0][3].ToString();之前首先判断,是否返回了数据,如果没有返回数据就会发生错误,另外从dt.Rows[0][3]知道此表至少有4列,如果没有4列也会发生错误
回复

使用道具 举报

千问 | 2010-10-14 18:21:05 | 显示全部楼层
表 IO_CONTROL 是不是没有数据
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行