C# 帮看一下代码

来源:百度知道 编辑:UC知道 时间:2024/06/05 08:35:23
string ccvt = Convert.ToString(ConfigurationManager.ConnectionStrings["sqlserver"]);
SqlConnection mmy = new SqlConnection(ccvt);
string sst = "select * from biaoti order by td desc";
mmy.Open();
SqlDataAdapter con = new SqlDataAdapter(sst, mmy);
DataSet my = new DataSet();
DataTable mmm = my.Tables[0];
string i = mmm.Rows[0]["shitou"].ToString();
if (i == "求助")
{
FindControl("Image1.ImageUrl = '/img/ww005.gif';");
}
else
{
FindControl("Image1.ImageUrl = '/img/ww006.gif';");
}

con.Fill(my);
bbi.DataSource = my;
bbi.DataBind();
mmy.Close();
//上面输出
异常详细信息: System.IndexOutOfRangeException: 无法找到表 0。

行 23: DataTable mmm = m

嗯,看了,然后呢?

你是不是表达障碍?

DataSet my = new DataSet(); 之后代码修改一下,判断查询是否获得数据集,并数据交换给DataSet。
DataSet my = new DataSet();
con .Fill(my);
int j = my.Tables.Count;
if(j>0)
{
string i = my.Tables[0].Rows[0]["shitou"].ToString();
if (i == "求助")
{
......
}
{

DataSet my = new DataSet();
DataTable mmm = my.Tables[0];
my还没有赋值,当然得不到数据了

很明显,你没有调用Fill来填充数据,当然没有表了

con.Fill

你看看string i = mmm.Rows[0]["shitou"].ToString(); 是不是应该是
string i = mmm.Rows[0]["shitou"].value(text).ToString();
我没有试,你在检查一下吧

请将你代码后面的这句 con.Fill(my); 移到DataSet my = new DataSet();
DataTable mmm = my.Tables[0]; 这两句之间。
即 DataSet my = new DataSet();
con.Fill(my);
DataTable mmm = my.Tables[0];
即可解决此问题。

你的问题在于,con.Fill(my); FILL填充数据集的方法写到后面去了,而在前面你的代码已经引用MY这个数据集了,如果不先用FILL对MY数据集进行填充,则程序无法在数据集中找到相应的数据表.