关于dr.read()的问题 很急!

greenapple1451 2008-04-03 11:34:16
private void Button1_Click(object sender, System.EventArgs e)
{
SqlConnection MyConnection=new SqlConnection("Data Source=(local);database=学生;uid=tq;pwd=1") ;
SqlCommand MyCommand=new SqlCommand("select * from 学生信息 where 姓名=@name",MyConnection);
MyCommand.Parameters.Add(new SqlParameter("@name",System.Data.SqlDbType.NChar,18));
MyCommand.Parameters["@name"].Value=TextBox1.Text;
MyConnection.Open();
SqlDataReader dr=MyCommand.ExecuteReader();
if(dr.Read())
{

DataGrid1.DataSource=dr;
this.DataGrid1.DataBind();

MyConnection.Close();


}
else
{
Response.Write("<script>alert('你输入的名字不存在')</script>");
}
}
怎么当数据库中符合条件的数据只有一条时,我的datagrid1没有显示呢?
当数据库中符合条件的数据为n条时,datagrid1中只能读取出n-1条呢?
请各位高手指点一下,在线等
谢了!
...全文
295 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
jayfushuai 2008-04-16
  • 打赏
  • 举报
回复
解释下,我的回答是,LZ没理解Reader()是什么
然后他发信息问我,到底是什么
我就在QQ里帮他把问题都解决了
我跟他说,把帖子节了吧,就给我了,呵呵
lucky1229 2008-04-13
  • 打赏
  • 举报
回复
这个用户名:jayfushuai 是不是和LZ很熟啊,问题没回答什么,分却全让他拿了,太不公平了,管理员出来管管啊
lucky1229 2008-04-11
  • 打赏
  • 举报
回复
都是高手啊,我刚学习,给点分,鼓励下!LZ
milo4210 2008-04-03
  • 打赏
  • 举报
回复
建议使用这种方法

SqlDataReader _dr = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);

while(_dr.Read())
{
.......
}
ericzhangbo1982111 2008-04-03
  • 打赏
  • 举报
回复
把数据读取出来以后再负值给DataGrid1

List<student> list=new List<student>();
student st=null;
while(dr.Read())
{
st=new student();
st.id=(int)dr["id"];
st.name=(string)dr["name"];
list.add(st);
}
DataGrid1.DataSource=list;
this.DataGrid1.DataBind();
MyConnection.Close();
greenapple1451 2008-04-03
  • 打赏
  • 举报
回复
不行啊
会出现这样的错误
“阅读器关闭时 Read 的尝试无效。 ”
ReyZhang 2008-04-03
  • 打赏
  • 举报
回复
奥,看错了,上面的不对

lz读出dr后直接绑给DataGrid不行吗
ReyZhang 2008-04-03
  • 打赏
  • 举报
回复
if(dr.Read())
{

DataGrid1.DataSource=dr;
this.DataGrid1.DataBind();
MyConnection.Close();
}


改成


while(dr.Read())
{
DataGrid1.DataSource=dr;
this.DataGrid1.DataBind();
MyConnection.Close();
}



建议最后再用dr.Close()来关闭连接
lucky749 2008-04-03
  • 打赏
  • 举报
回复
DataGrid1.DataSource=dr;
this.DataGrid1.DataBind();
MyConnection.Close();

yanhuannet 2008-04-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 milo4210 的回复:]
建议使用这种方法

SqlDataReader _dr = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);

while(_dr.Read())
{
.......
}
[/Quote]

外加
try
{
....
}
finally
{
dr.close();
}
建议试一下.
virusswb 2008-04-03
  • 打赏
  • 举报
回复

while(dr.Read())
{

}
dr.close();
myconnection.close();
你的连接也关闭的太早了吧
jikun6666 2008-04-03
  • 打赏
  • 举报
回复
帮顶一下
leo5381544 2008-04-03
  • 打赏
  • 举报
回复
直接绑定即可,绑定后关闭连接

DataGrid1.DataSource=dr;
this.DataGrid1.DataBind();
MyConnection.Close();
weiphone 2008-04-03
  • 打赏
  • 举报
回复
using(SqlDataReader dr=MyCommand.ExecuteReader(CommandBehavior.CloseConnection))
{
DataGrid1.DataSource=dr;
this.DataGrid1.DataBind();
}

dr自动关闭
PKERX 2008-04-03
  • 打赏
  • 举报
回复
LZ很奇怪,绑定到表格,又不用对数据做什么处理,为什么要用dateReader呢?
SqlDataAdapter呢?
lovehongyun 2008-04-03
  • 打赏
  • 举报
回复
DataGrid1为什么不绑定datatable?
JavCof 2008-04-03
  • 打赏
  • 举报
回复
思路:用泛型来迭代数据,关闭DataReader,然后进行数据绑定。
jayfushuai 2008-04-03
  • 打赏
  • 举报
回复
LZ没理解Reader到底是什么
Phoxe_bai 2008-04-03
  • 打赏
  • 举报
回复
建议使用这种方法

SqlDataReader _dr = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);

while(_dr.Read())
{
.......
}

正解

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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