+ -
当前位置:首页 → 问答吧 → if (ds.Tables[0].Rows.Count != 0) 出错 无法找到表 0。

if (ds.Tables[0].Rows.Count != 0) 出错 无法找到表 0。

时间:2011-12-11

来源:互联网

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class image_Detail : System.Web.UI.Page
{
  string sqlstr;
  DB db = new DB();
  DataSet ds = new DataSet();
  int PageSize;
  int CurrentPage;
  int RecordCount;
  int PageCount;

  protected void Page_Load(object sender, EventArgs e)
  {
  sqlstr = "select * from image";
  //Response.Write(Request.QueryString.Get(0).ToString().Trim());
  //Label3.Text = Request.QueryString.Get(0).ToString().Trim();
  ds = db.GetDataTableBySql(sqlstr);
  if (ds.Tables[0].Rows.Count != 0)
  {
  this.DataList1.DataSource = ds.Tables[0].DefaultView;
  this.DataList1.DataBind();
  }
  ViewState["CurrentPage"] = 0;
  PageSize = 3;


  sqlstr = "select * from image";
  ds = db.GetDataTableBySql(sqlstr);
  if (ds.Tables[0].Rows.Count != 0)
  {
  this.DataList1.DataSource = ds.Tables[0].DefaultView;
  this.DataList1.DataBind();
  }

  if (Page.IsPostBack == false)
  {
  ViewState["PageIndex"] = 0;

  sqlstr = "select count(*) as count from image";
  ds = db.GetDataTableBySql(sqlstr);
  if (ds.Tables[0].Rows.Count != 0)
  {
  RecordCount = int.Parse(ds.Tables[0].Rows[0]["count"].ToString());
  }
  else
  {
  RecordCount = 0;
  }
  if (RecordCount % PageSize == 0)
  {
  PageCount = RecordCount / PageSize;
  }
  else
  {
  PageCount = RecordCount / PageSize + 1;
  }
  ViewState["PageCount"] = PageCount;
  this.Label2.Text = PageCount.ToString(); //显示总页数
  BindList();

  }
  }

  private void BindList()
  {
  int StartIndex = CurrentPage * PageSize; //设定导入的起始地址  
  sqlstr = "select * from image";
  SqlConnection con = new SqlConnection();
  con.ConnectionString = db.GetConnectionString();
  con.Open();
  SqlDataAdapter da = new SqlDataAdapter(sqlstr, con);
  da.Fill(ds, StartIndex, PageSize, "image");

  this.DataList1.DataSource = ds.Tables["image"].DefaultView;
  this.DataList1.DataBind();

  PageCount = (int)ViewState["PageCount"];//获得总页数
  this.ImageButton1.Enabled = true;
  this.ImageButton2.Enabled = true;
  if (CurrentPage == (PageCount - 1))
  this.ImageButton2.Enabled = false;
  if (CurrentPage == 0)
  this.ImageButton1.Enabled = false;
  this.Label1.Text = Convert.ToString(CurrentPage + 1);
  }

  protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
  {
  CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引

  CurrentPage = CurrentPage - 1;
  ViewState["PageIndex"] = CurrentPage;
  BindList();
  }
  protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
  {
  CurrentPage = (int)ViewState["PageIndex"];//获得当前页索引

  CurrentPage = CurrentPage + 1;
  ViewState["PageIndex"] = CurrentPage;
  BindList();
  }
}


作者: WuMj68   发布时间: 2011-12-11

ds = db.GetDataTableBySql(sqlstr);

ds是个DataSet,而GetDataTableBySql()方法返回DataTable

看看db类中有没有返回DataSet的方法

如果没有,直接定义一个DatatTable类型的变量dt
dt = db.GetDataTableBySql(sqlstr);
if (dt.Rows.Count != 0)
{
...
}

作者: mizuho_2006   发布时间: 2011-12-11

在DB类里面定义么!
DB类代码:
  using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

/// <summary>
/// DB 的摘要说明
/// </summary>
public class DB
{
  public SqlConnection Con = new SqlConnection();
  public SqlCommand Com = new SqlCommand();
  public SqlDataAdapter Da = new SqlDataAdapter();
  public DataSet Ds = new DataSet();
  public DB()
  {
  //
  // TODO: 在此处添加构造函数逻辑
  //
  }
  public String GetConnectionString()
  {
  String ConStr;
  ConStr = System.Configuration.ConfigurationManager.AppSettings.Get(0).ToString();
  return ConStr;
   
  }
  public DataSet GetDataTableBySql(String SqlStr)
  {
  Con.ConnectionString = GetConnectionString();
  Com.Connection = Con;
  Com.CommandText = SqlStr;
  Da.SelectCommand = Com;
  try
  {
  Ds.Clear();
  Con.Open();
  Da.Fill(Ds);
  Con.Close();
  }
  catch (SqlException)
  {
  Con.Close();
  }
  return Ds;
  }
  public Boolean UpdateDataBySql(String SqlStr)
  {
  Con.ConnectionString = GetConnectionString();
  Com.Connection = Con;
  Com.CommandText = SqlStr;
  try
  {
  Con.Open();
  Com.ExecuteNonQuery();
  Con.Close();
  return true;
  }
  catch (Exception)
  {
  Con.Close();
  return false;
  }
  }
}

作者: WuMj68   发布时间: 2011-12-11

学会看提示,先判断table是否是null
C# code
if (ds.Tables.Count==0 || ds.Tables[0].Rows.Count == 0) return;

作者: wuyazhe   发布时间: 2011-12-11

相关阅读 更多

热门下载

更多