日期:2014-05-17  浏览次数:20461 次

无法找到表0
public DataTable GetDataTable(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
return dataset.Tables[0];
}
提示红色标记的那一行出错,请高手指点!谢谢!

------解决方案--------------------
引用楼主 lsh050811214 的帖子:
public DataTable GetDataTable(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
return dataset.Tables[0];
}
提示红色标记的那一行出错,请高手指点!谢谢!

------解决方案--------------------
你怎么知道返回的一定有呢?
if(dataset.Tables.Count>0)
{
return dataset.Tables[0];
}
return null;
PS:1楼,LZ这样写有何不妥?这只是个习惯的问题罢了。而且如果要查询的数据的确是多个TABLE呢?
------解决方案--------------------
探讨
你怎么知道返回的一定有呢?
if(dataset.Tables.Count>0)
{
return dataset.Tables[0];
}
return null;
PS:1楼,LZ这样写有何不妥?这只是个习惯的问题罢了。而且如果要查询的数据的确是多个TABLE呢?

------解决方案--------------------
探讨
你怎么知道返回的一定有呢?
if(dataset.Tables.Count>0)
{
return dataset.Tables[0];
}
return null;
PS:1楼,LZ这样写有何不妥?这只是个习惯的问题罢了。而且如果要查询的数据的确是多个TABLE呢?

------解决方案--------------------
因为GetDataSet(SqlString)没取到值,所以没有table----无法找到表0;推荐3楼写法

探讨
C# code
public DataTable GetDataTable(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
if(dataset == null || dataset.Tables.Count == 0 || dataset.Tables[0].Rows.Count == 0) return null;
dataset.CaseSensitive = false;
return dataset.Tables[0];
}