无法找到表0

环境vs2008c#sql2005.急啊.帮我解决.再追分.错误如图所示.///<summary>///公有方法,获取数据,返回一个DataTable。///</summ... 环境vs2008 c# sql2005.急啊.帮我解决.再追分.
错误如图所示.

/// <summary>
/// 公有方法,获取数据,返回一个DataTable。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>DataTable</returns>
public DataTable GetDataTable(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
return dataset.Tables[0];
}

/// <summary>
/// 公有方法,获取数据,返回一个DataRow。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>DataRow</returns>
public DataRow GetDataRow(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
if (dataset.Tables[0].Rows.Count > 0)
{
return dataset.Tables[0].Rows[0];
}
else
{
return null;
}
}
GetDataSet()的代码
/// <summary>
/// 公有方法,获取数据,返回一个DataSet。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>DataSet</returns>
public DataSet GetDataSet(String SqlString)
{
DataSet dataset = new DataSet();
Open();
try
{
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
adapter.Fill(dataset);
}
catch (Exception e)
{
//log.WriteLog(EventLogEntryType.Warning, "GetDataSet失败,SqlString=" + SqlString + ",系统异常信息:" + e.Message);
}
finally
{
Close();
}
return dataset;
}
在if (dataset.Tables[0].Rows.Count > 0)
加一个判断
if(dataset.Tables.Cou
展开
 我来答
ozyang
2010-03-16 · TA获得超过1330个赞
知道小有建树答主
回答量:749
采纳率:0%
帮助的人:565万
展开全部
你的方法这样改下:
/// <summary>
/// 公有方法,获取数据,返回一个DataRow。
/// </summary>
/// <param name="SqlString">Sql语句</param>
/// <returns>DataRow</returns>
public DataRow GetDataRow(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
if (dataset.Tables[0] != null && dataset.Tables[0].Rows.Count > 0)
{
return dataset.Tables[0].Rows[0];
}
return null;
}

补充:

在if (dataset.Tables[0].Rows.Count > 0)
加一个判断
if(dataset.Tables.Count>0)
又出以下错
错误 7 “DataAccess.GetDataRow(string)”: 并非所有的代码路径都返回值 D:\电子商务实验平台C2C\App_Code\database.cs

----------------
你在最后的时候,加个return null;就可以了
dyytsoft
2010-03-16 · TA获得超过258个赞
知道答主
回答量:79
采纳率:0%
帮助的人:117万
展开全部
我遇到过这个问题,主要原因是你的Tables[0].Rows没有初始化,我用了一个最笨的方法:

我的程序中:
listViewLog_A.Items.Clear();
listViewLog_M.Items.Clear();
for (int i = 0; i < 256; i++)
{
this.listViewLog_A.Items.Add(i.ToString());
for (int j = 0; j < 9; j++)
{
this.listViewLog_A.Items[this.listViewLog_A.Items.Count - 1].SubItems.Add(string.Empty);
}
this.listViewLog_M.Items.Add(i.ToString());
for (int j = 0; j < 9; j++)
{
this.listViewLog_M.Items[this.listViewLog_M.Items.Count - 1].SubItems.Add(string.Empty);
}
}

目前还不知道c#这个Bug怎么解决,这样可以保证你能用了,呵呵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yn098
2010-03-16 · TA获得超过207个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:322万
展开全部
你dataset的tables集合是空的,没有任何表。你用sqlserver的事件探查器看看sql语句,再执行一下,肯定是sql语句有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
polo_wxz
2010-03-16 · TA获得超过516个赞
知道答主
回答量:155
采纳率:0%
帮助的人:122万
展开全部
你在调用dataset.tables(0)之前,应当先判断dataset不为空,并且dataset.tables的count大于0,否则检索不到结果时,就会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bxfc
2010-03-16 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:686万
展开全部
GetDataSet();//这个方法的代码呢???

其外在
if (dataset.Tables[0].Rows.Count > 0)
前面需要多加一个判断
if(dataset.Tables.Count>0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式