首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在没有任何数据时进行无效的读取尝试,该怎么解决

2012-01-22 
在没有任何数据时进行无效的读取尝试代码如下:protected void Page_Load(object sender, EventArgs e){if

在没有任何数据时进行无效的读取尝试
代码如下:
  protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  {
  Sql_Conn sqlcon = new Sql_Conn();
  string str = "select * from TW_channel";
  SqlCommand cmd = sqlcon.CreateCommand(str);
  SqlDataReader ds = cmd.ExecuteReader();
  this.channel.DataSource = ds;
  channel.DataTextField = "c_name";
  channel.DataValueField = "id";
  channel.DataBind();
  this.t_name.Text = ds["c_name"].ToString();
  ds.Close();
  sqlcon.Close();
   
  }
  }
奇怪的是把this.t_name.Text = ds["c_name"].ToString();删除,这个channel是可以绑定的 也有数据
用这个ds["c_name"]的时候就变成没任何数据了 郁闷了死了
报错如题

[解决办法]
this.t_name.Text = ds["c_name"].ToString(); 
 你并没有取数据呀
[解决办法]
唉。reader的行为啊。。。
绑定完了之后,reader的游标已经读到数据末尾了,你再访问当然读不到啦。。。

如果还不懂,那你先回答个问题:datareader和dataset的区别是啥?
[解决办法]
this.t_name.Text = ds.rows[rowindex]["c_name"].ToString(); 

[解决办法]

引用楼主 jy03070017 的帖子:
channel.DataBind();
this.t_name.Text = ds["c_name"].ToString();

热点排行