以下代码是想点击“第一条”按钮(Button1)从数据库中读出第一行记录(2个字段)显示在相应的TextBox中;点击

以下代码是想点击“第一条”按钮(Button1)从数据库中读出第一行记录(2个字段)显示在相应的TextBox中;点击“下一条”按钮(Button1)读取下一条记录pub... 以下代码是想点击“第一条”按钮(Button1)从数据库中读出第一行记录(2个字段)显示在相应的TextBox中;点击“下一条”按钮(Button1)读取下一条记录
public partial class _Default : System.Web.UI.Page
{
private SqlDataReader sdr;//sdr在此定义

protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)//点击查看第一条记录
{
string sqlconnstr = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
SqlCommand sqlcommand = new SqlCommand("select no,name from student", sqlconn);
sqlconn.Open();
SqlDataReader sdr = sqlcommand.ExecuteReader();
bool flag = sdr.Read();
if (flag)
{
TextBox1.Text =sdr["no"].ToString();
TextBox2.Text = sdr.GetString(1);
}
}
protected void Button2_Click(object sender, EventArgs e)//点击查看下一条记录
{
if (sdr.Read())
{
TextBox1.Text =sdr["no"].ToString();
TextBox2.Text = sdr.GetString(1);

}

}
}
但运行时点击Button2,错误停留在“ if (sdr.Read())”这一句,提示“未将对象引用设置到对象的实例”,请问问题出在哪?谢谢!
先谢过两位的热心回答。我原本是想把sdr定义在外部,在Button1和Button两个事件过程中通用.在Button1通过sdr.Read()读取第一条记录后,指针自动向后移,然后在Button2中就可以再通过一个sdr.Read()读取下一条记录了。这样想错了吗?
展开
 我来答
arthasiori
2010-10-20 · TA获得超过281个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:123万
展开全部
你这个问题很明显
private SqlDataReader sdr;//sdr在此定义
你只是定义了一个sqldatareader类型的 ser但是你没有实例化它的代码啊
你的Button1_Click里面的是正确的,
SqlDataReader sdr = sqlcommand.ExecuteReader();
但是在这个Button2_Click中你没有实例化sdr啊,你的sdr是个空的
在说了你的button2想查看下一条记录,你查询数据库的代码呢??
你最好不要这样写,你最好先把数据查出来,放在一个dataset或者datatable里面,然后点击一次button根据索引去从dataset或者datatable中去查找你要的数据
LIFEXX
2010-10-20 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:104万
展开全部
button1点完之后要关闭连接,sdr.close;
然后button2里面需要重新打开。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzy_130
2010-10-20 · TA获得超过810个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:492万
展开全部
你这样想是没错的,如果你写的是WinForm程序是可以的
但是ASP中,每个页面都是一个新的这个页面类的实例
第一次点的时候是一个实例,第二次点又是新的一个了
所以出错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式