无法找到表0????如何动态生成listBOX的选项值??????在线等~~~~

yesizhu103 2013-07-03 09:47:09
请问如何动态生成listbox中的选项值??我的主要想实现的是:点击搜索->生成ListBox中的选项值(即搜索结果)->点击选项值可以添加到TextBOX的text中。在页面初次加载时listbox是隐藏的,点击搜索按钮之后listbox显示,并显示出搜索结果。
主要有两个问题一个是:无法找到表0;另一个是动态生成listbox中的选项值
 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
ListBox2.Visible = true;
string constr = ConfigurationManager.ConnectionStrings["ConnStr1"].ToString();
OleDbConnection conn = new OleDbConnection(constr);
conn.Open();
string s = " select * from D_user where rename like '%"+ TextBox4 .Text +"%'";
OleDbDataAdapter da = new OleDbDataAdapter( );
da.SelectCommand = new OleDbCommand( s ,conn );
DataSet ds = new DataSet();
if (ds.Tables [0].Rows .Count !='0')
{
ListBox2.DataSource = ds.Tables[0];
ListBox2.DataTextField = ds.Tables[0].Rows[4].ToString();
ListBox2.DataValueField = ds.Tables[0].Rows[0].ToString();
ListBox2.DataBind();
}
else
{
Response.Write("无法找到匹配的联系人信息....");
}
conn.Close();
}

运行调试结果:无法找到表 0。源错误:


行 103: da.SelectCommand = new OleDbCommand( s ,conn );
行 104: DataSet ds = new DataSet();
行 105: if (ds.Tables [0].Rows .Count !='0')行 106: {
行 107: ListBox2.DataSource = ds.Tables[0];

...全文
181 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2013-07-03
  • 打赏
  • 举报
回复
找不到表是应为你没有Fill啊 da.SelectCommand = new OleDbCommand( s ,conn ); DataSet ds = new DataSet(); da.Fill(ds);
Kim_Du 2013-07-03
  • 打赏
  • 举报
回复
首先,你的保证你的sql能查到数据,其次,你查询出来的结果要放到DataSet里面

//OleDbDataAdapter da = new OleDbDataAdapter( );
        //da.SelectCommand = new OleDbCommand( s ,conn );
        //DataSet ds = new DataSet();
//改为
OleDbDataAdapter da = new OleDbDataAdapter(s ,conn);
DataSet ds = new DataSet();
da.Fill(ds);
再次,结果行数的判断应该是int类型

//if (ds.Tables [0].Rows .Count !='0')
//改为
if (ds.Tables [0].Rows .Count !=0)
shawn_yang 2013-07-03
  • 打赏
  • 举报
回复
有两个办法, 1,做一个数组绑定动态绑定到listbox 2,ListItem item = new ListItem("bca","123")); ListBox1.Items.Add(item)
看看看灰机 2013-07-03
  • 打赏
  • 举报
回复
楼上正解。。你得把sql得出的结果填到dataset中。。
coobai 2013-07-03
  • 打赏
  • 举报
回复
DataSet ds = new DataSet(); if (ds.Tables [0].Rows .Count !='0') { 刚new一个 DataSet 就开始 使用Tables[0] ,肯定找不到啊、
yesizhu103 2013-07-03
  • 打赏
  • 举报
回复
好无奈。。。。。。。。。写代码写的这么低级的错误都范。。。不知下一个问题,动态绑定listbox有没有代码可供参考

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧