兄弟们帮忙啊啊 怎么少了一条数据啊?
protected void Page_Load(object sender, EventArgs e)
{
string sqlstr;
SqlDataReader read;
sqlstr = "select classname,classid,infrontclassid from class where infrontclassid=0 ";
read = data.proc_executereader(sqlstr);//这里是我创建的一个执行sqlstr语句的一个方法,方法如下
if (read.Read())
{
mainpart.DataTextField = "classname ";
mainpart.DataValueField = "classid ";
mainpart.DataSource = read;
mainpart.DataBind();
// partbinder();
}
else
{
}
我数据库里有4条记录
classid=1 classname=中国
classid=2 classname=美国
classid=3 classname=英国
classid=4 classname=法国
但是当页面执行的时候就有3个下拉选项 一个美国一个英国一个法国,,中国那条记录没了/?大哥门帮忙看看啊
这是那个执行SQLSTR语句的方法
public SqlDataReader proc_executereader(string sqlstr)
{
SqlConnection conn = new SqlConnection(connection());
SqlCommand cmd = new SqlCommand( "easyproc ", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para;
para = cmd.Parameters.Add( "@csql ", SqlDbType.NVarChar, 3000);
cmd.Parameters[ "@csql "].Value = sqlstr;
para = cmd.Parameters.Add( "@total ", SqlDbType.Int);
para.Direction = ParameterDirection.Output;
para = cmd.Parameters.Add( "@retime ", SqlDbType.VarChar, 50);
para.Direction = ParameterDirection.Output;
conn.Open();
return cmd.ExecuteReader();
}
------解决方案--------------------
什么没都不可以没中国啊!
[解决办法]
select classname,classid,infrontclassid from class where infrontclassid=0
你在查询分析器里看看能查出多少?
[解决办法]
string sqlstr;
SqlDataReader read;
sqlstr = "select classname,classid,infrontclassid from class where infrontclassid=0 ";
read = data.proc_executereader(sqlstr);//这里是我创建的一个执行sqlstr语句的一个方法,方法如下
mainpart.DataTextField = "classname ";
mainpart.DataValueField = "classid ";
mainpart.DataSource = read;
mainpart.DataBind();
就这样先试试看,会不会少一条
[解决办法]
中国的infrontclassid是0吗?
[解决办法]
楼主,你确定你“classid=1 classname=中国” 这一行的“infrontclassid”=0吗?
[解决办法]
public SqlDataReader proc_executereader(string sqlstr)
{
SqlConnection conn = new SqlConnection(connection());
SqlCommand cmd = new SqlCommand( "easyproc ", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para;
para = cmd.Parameters.Add( "@csql ", SqlDbType.NVarChar, 3000);
cmd.Parameters[ "@csql "].Value = sqlstr;
para = cmd.Parameters.Add( "@total ", SqlDbType.Int);
para.Direction = ParameterDirection.Output;
para = cmd.Parameters.Add( "@retime ", SqlDbType.VarChar, 50);
para.Direction = ParameterDirection.Output;
conn.Open();
return cmd.ExecuteReader();
}
--------------
连接要关闭
直接返回一个范泛键值对会比你这个好一点