当前位置:编程学习 > C#/ASP.NET >>

HyperLink不同页面传值

在使用HyperLink传值时:
代码
<asp:TemplateField HeaderText="订购" >
                <ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "~/Default3.aspx?BookName="+Eval("书名")%>' Text="订购"></asp:HyperLink> 
 </ItemTemplate>

                </asp:TemplateField>
接收页面代码:

       string str = Request.QueryString["BookName"];
       string sql = "select [书名] from BookInformation where[书名]='" + str + "'";
       string connstr = ConfigurationManager.ConnectionStrings["BookConnectionString"].ConnectionString;
       SqlConnection conn = new SqlConnection(connstr);
       SqlCommand cmd = new SqlCommand(sql, conn);
       try
       {
           conn.Open();
           SqlDataReader dr = cmd.ExecuteReader();
           dr.Read();
               Label1.Text = dr[0].ToString();
           dr.Close();
       }
       catch (Exception err)
       {
           Response.Write(err.Message);
       }
       finally
       {
           conn.Close();
       }
出现的错误提示:在没有任何数据时进行无效的读取尝试。
请高手指教! --------------------编程问答-------------------- 你确定你的路径没问题么
--------------------编程问答-------------------- 出现的错误提示:在没有任何数据时进行无效的读取尝试。
----------------------
读之前先判断一下
SqlDataReader dr = cmd.ExecuteReader();
if(dr.HasRows)
{
   dr.Read();
   //...
}
--------------------编程问答-------------------- 你能取到str不?打断点看看呀,另外看看 NavigateUrl的路径写的对不?好久没写过代码了,
代码没错时再看数据库(这个估计一般不会有问题的) --------------------编程问答-------------------- 改为:

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='~/Default3.aspx?BookName=<%#Eval("书名")%>' Text="订购"></asp:HyperLink>
 
  --------------------编程问答--------------------
引用 2 楼 dongxinxi 的回复:
出现的错误提示:在没有任何数据时进行无效的读取尝试。
----------------------
读之前先判断一下
C# code
SqlDataReader dr = cmd.ExecuteReader();
if(dr.HasRows)
{
   dr.Read();
   //...
}

对头 要判断一下有没有数据啊

if (dr.Read())
{
.....
}
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,