如何在gridview中显示多行数据

使用的数据库是SQL,关键字是Dade(字符型)和TankId,使用两个DROPDOWNLIST来约束时间的范围,将时间在二者之间的数据行显示在gridview中,代码如... 使用的数据库是SQL,关键字是Dade(字符型)和TankId,使用两个DROPDOWNLIST来约束时间的范围,将时间在二者之间的数据行显示在gridview中,代码如下:
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;
using System.Data.SqlClient;
using System.Web.Configuration;

public partial class g组合预测 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridViewBind();
}
}
//自定义绑定函数
public void GridViewBind()
{
SqlConnection con = new SqlConnection("server=.;database=oilbase;Integrated Security = true");
con.Open();
string strSql = "select Date,TankId,Actvalue,ComForecast from DemandForecast";
SqlDataAdapter da = new SqlDataAdapter(strSql, con);
DataSet ds = new DataSet();
da.Fill(ds, "DemandForecast");
SqlCommand cmd = new SqlCommand(strSql, con);
GridView1.DataSource = ds;
GridView1.DataKeyNames = new string[] { "Date","TankId" };
GridView1.DataBind();
con.Close();
}
protected void Buttonok_Click(object sender, EventArgs e)
{
string datestr1 = DropDownList1.SelectedItem.Text;
string datestr2 = DropDownList2.SelectedItem.Text;
int i = Convert.ToInt32(datestr1);
int j = Convert.ToInt32(datestr2);
for (int m = 0; m <= GridView1.Rows.Count - 1; m++)
{
if (i <= j)
{
for (int n = i; n <= j; n++)
{

string datestr = Convert.ToString(n);
SqlConnection con = new SqlConnection("server=.;database=oilbase;Integrated Security = true");
con.Open();
string selstrSql = "Select Date,TankId,Actvalue,ComForecast from DemandForecast where Date='" + datestr + "'and TankId='" + DropDownList3.SelectedItem.Text + "'";
SqlCommand cmd = new SqlCommand(selstrSql, con);
cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter(selstrSql, con);
DataSet ds = new DataSet();
da.Fill(ds, "DemandForecast");
GridView1.DataSource = ds;
GridView1.DataBind();
con.Close();
}

}
else
{
Response.Write("<script language=javascript> alert('日期选择有误!'); </script>");
}
}
}
}
运行时gridview中没有任何数据,请高手指教
展开
 我来答
百度网友96ffcf7
推荐于2016-03-10 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
1.打开GridView任务面板,进编辑列面板,添加一个TemplateField(模板字段)字段,然后确定退出此面板。
2.在GridView任务面板选择编辑模板,进入编辑模板面板,选择刚才增加的模板字段,从工具箱中拖入一个APSNET控件Label。绑定数据字段。完成后源代码如下:
………..
<asp:TemplateField HeaderText="描述">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("描述") %>' Width="100%"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
…….
3.编写GridView的RowDataBound事件。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.Cells.Count == 5)//为什么是5?这个表是5列(在实际使用时表有几列就设为几),如果使用了GridView自动分页功能,分页也是GridView中的一行,但其只有1列,因此在此不指定5列作为限定条件时,将无法执行。
{
foreach (Control ctl in e.Row.Cells[3].Controls)//注意:是第3列,从0列开始
{
if (ctl is Label)
{
string St = ((Label)ctl).Text;
St = "<Pre>" + St + "</Pre>";//如果是模板列中的Lable控件时,取出其中的数据,并增加<pre>标志后再赋值给Label控件的Text
((Label)ctl).Text = St;
}
}
}
}
270048681
2010-05-15 · 超过11用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:32.5万
展开全部
有两点我觉得有问题. 你改正下试试吧.
1. 在GridViewBind() 中. 把
GridView1.DataSource = ds改为
GridView1.DataSource = ds.Tables["DemandForecast"];

2.先注释掉这句, 或者只定义一个值.!
GridView1.DataKeyNames = new string[] { "Date", "TankId" };

其它的我看也没什么问题. 希望能给你点 提示..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ggh258631664
2010-05-07 · 超过15用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:35.9万
展开全部
你的GridViewBind()里面少了一句cmd.ExecuteNonQuery();
没有执行哪里来的数据~要细心点~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caesarjr
2010-05-07 · 超过21用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:0
展开全部
1.直接在数据库中执行下sql语句,看看有没有记录.

2.如果有记录.
楼主的GridViewBind()方法应该是没错的(虽然有几句冗余的代码)
页面中没显示,可能有以下几个原因.
a.GridView的"自动生成字段"是不是没有勾选,即AutoGenerateColumns=false.
如果是设为false,需要手动添加数据列.不然是没有数据列的.
b.visible属性是不是设为了false.
c.前台页面的样式是不是有问题.

最大的可能就是没数据,楼主好好排查下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式