在加粗部分代码中,每次获得的dt对象都是null,但是sql语句的确是可以运行的,在vs2005中sql语句测试器中试过,我不明白是什么原因,请大家帮忙了
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;public partial class serch : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
getbigbind();
}
}
protected void getbigbind()
{
string sql="select BigClassName from BigClass";
DataTable dv = dbfun.getdbtable(sql);
for (int i=0; i < dv.Rows.Count;i++ )
{
biglist.Items.Add(dv.Rows[i]["BigClassName"].ToString());
}
}
protected void biglist_SelectedIndexChanged(object sender, EventArgs e)
{
string selbig = biglist.SelectedValue; string sqls = "SELECT SmallClassName FROM SmallClass WHERE (BigClassName = '" + selbig + "')";
DataTable dt = dbfun.getdbtable(sqls);
for (int i = 0; i < dt.Rows.Count; i++)
{
smalllist.Items.Add(dt.Rows[i]["SmallClassName"].ToString());
}
}
}
[/b]
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;public partial class serch : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
getbigbind();
}
}
protected void getbigbind()
{
string sql="select BigClassName from BigClass";
DataTable dv = dbfun.getdbtable(sql);
for (int i=0; i < dv.Rows.Count;i++ )
{
biglist.Items.Add(dv.Rows[i]["BigClassName"].ToString());
}
}
protected void biglist_SelectedIndexChanged(object sender, EventArgs e)
{
string selbig = biglist.SelectedValue; string sqls = "SELECT SmallClassName FROM SmallClass WHERE (BigClassName = '" + selbig + "')";
DataTable dt = dbfun.getdbtable(sqls);
for (int i = 0; i < dt.Rows.Count; i++)
{
smalllist.Items.Add(dt.Rows[i]["SmallClassName"].ToString());
}
}
}
[/b]
biglist_SelectedIndexChanged中DataTable dt = dbfun.getdbtable(sqls);
你这个dbfun.getdbtable到底返回个什么东东?
DataTable dv = dbfun.getdbtable(sql);
这里能通过,那就说明你下面方法中sql语句有问题
1:看一下selbig是否有值
2:bigclassName数据库字段类型,如果是数值型,不要加单引号
无值是很大可能性或是带有非法字符。执行出错,但没有抛出导常!
string sqls = "SELECT SmallClassName FROM SmallClass WHERE (BigClassName = '" + selbig + "')";
调试看看sql语句