asp.net中的repeater控件不能连接数据库 5
html代码asp:RepeaterID="Repeater1"runat="server"><ItemTemplate><table><tr><tdcolspan="3...
html代码
asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<table>
<tr>
<td colspan="3"><%# DataBinder.Eval (Container.DataItem ,"商品名") %> </td>
</tr>
<tr>
<td rowspan="3"><img src="<%# DataBinder.Eval(Container.DataItem ,"图片") %>" />
</td>
<td>商品号:<%# DataBinder.Eval(Container.DataItem ,"商品号") %></td>
</tr>
<tr>
<td>价格:<%# DataBinder.Eval(Container.DataItem ,"价格") %></td>
</tr>
<tr>
<td>供应商:<%# DataBinder.Eval(Container.DataItem ,"供应商") %></td>
</tr>
</table>
</ItemTemplate>
后台代码
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 Default1 : System.Web.UI.Page
{
String SqlStr;
DataSet Ds = new DataSet();
DB db = new DB();
String Goods_ID;
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
Goods_ID = Request.QueryString.Get(0).ToString().Trim();
SqlStr = "select * from 商品表 where 商品号="+Goods_ID;
Ds = db.GetDataTableBySql(SqlStr);
try
{
if (Ds.Tables[0].Rows.Count != 0)
{
this.Repeater1.DataSource = Ds.Tables[0].DefaultView;
this.Repeater1.DataBind();
Session["goodsid"] = Goods_ID;
}
}
catch (Exception)
{
Response.Write("<script>alert('无法连接数据数据,请检查!')</script>");
}
}
} 展开
asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<table>
<tr>
<td colspan="3"><%# DataBinder.Eval (Container.DataItem ,"商品名") %> </td>
</tr>
<tr>
<td rowspan="3"><img src="<%# DataBinder.Eval(Container.DataItem ,"图片") %>" />
</td>
<td>商品号:<%# DataBinder.Eval(Container.DataItem ,"商品号") %></td>
</tr>
<tr>
<td>价格:<%# DataBinder.Eval(Container.DataItem ,"价格") %></td>
</tr>
<tr>
<td>供应商:<%# DataBinder.Eval(Container.DataItem ,"供应商") %></td>
</tr>
</table>
</ItemTemplate>
后台代码
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 Default1 : System.Web.UI.Page
{
String SqlStr;
DataSet Ds = new DataSet();
DB db = new DB();
String Goods_ID;
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
Goods_ID = Request.QueryString.Get(0).ToString().Trim();
SqlStr = "select * from 商品表 where 商品号="+Goods_ID;
Ds = db.GetDataTableBySql(SqlStr);
try
{
if (Ds.Tables[0].Rows.Count != 0)
{
this.Repeater1.DataSource = Ds.Tables[0].DefaultView;
this.Repeater1.DataBind();
Session["goodsid"] = Goods_ID;
}
}
catch (Exception)
{
Response.Write("<script>alert('无法连接数据数据,请检查!')</script>");
}
}
} 展开
展开全部
你这问题本身就不对,Repeater又不连接数据库,ADO.NET才和数据库打交道,Repeater只是显示数据罢了,真正链接数据库的工作跟Repeater一点关系都没有
首先,注释掉多余的try..,catch,你这代码都没测试好就把异常给隐藏掉了,基本的编程习惯都不好
其次,检查有没有获取到数据,即Ds.Tables[0]中有没有数据
剩下的有问题再说
首先,注释掉多余的try..,catch,你这代码都没测试好就把异常给隐藏掉了,基本的编程习惯都不好
其次,检查有没有获取到数据,即Ds.Tables[0]中有没有数据
剩下的有问题再说
追问
Ds.Tables[0]中没有数据 那怎么办
追答
检查sql语句,先断点看下SqlStr的知,然后把这值直接放到数据库里试下看有没有得到想要的结果,然后看GetDataTableBySql的内部逻辑有没有问题
展开全部
用sql server语句返回结果集(DataTable 或者 List<类> 或者IList<类>)
repeater.DataSocuse=结果集
repeater.DataBind()
这是,虽然已经绑定完成,但是没有显示任何数据。
这时,你需要在repeater中嵌套一个Table,用Table来显示数据。
repeater.DataSocuse=结果集
repeater.DataBind()
这是,虽然已经绑定完成,但是没有显示任何数据。
这时,你需要在repeater中嵌套一个Table,用Table来显示数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个,不是连接数据库失败。数据已经取到Dataset里面了。
错误原因,应该是你html的Repeater里面,有列名写错了。
将catch (Exception)
{
Response.Write("<script>alert('无法连接数据数据,请检查!')</script>");
}
修改为:
catch
{
throw;
}
来查看具体的错误原因吧。
错误原因,应该是你html的Repeater里面,有列名写错了。
将catch (Exception)
{
Response.Write("<script>alert('无法连接数据数据,请检查!')</script>");
}
修改为:
catch
{
throw;
}
来查看具体的错误原因吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
catch (Exception ex)
{
Response.Write("<script>alert('"+ex.message+"')</script>");
}
看下具体的异常信息,再根据这个去找错误源
{
Response.Write("<script>alert('"+ex.message+"')</script>");
}
看下具体的异常信息,再根据这个去找错误源
更多追问追答
追问
它说无法找到表0
追答
那就是 你这里面
Ds = db.GetDataTableBySql(SqlStr)
有问题
没有dataset没有table【0】意思是没有找到数据,可以打断点到这个方法里面跟踪一下,
如果没有问题 那拿 SqlStr = "select * from 商品表 where 商品号="+Goods_ID;
加上参数放数据库里面执行一下看是否有数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这句话if (Ds.Tables[0].Rows.Count != 0) 根本不存在Tables[0]
也就是根本没数据
也就是根本没数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
跟踪调试一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询