C#中用GridView绑定了数据源为什么查不到数据?

zyp_xina 2016-04-17 08:02:22
这是我绑定数据源后想通过查询点击事件查询数据的代码
protected void btnserchl_Click(object sender, EventArgs e)
{
string type = ddltype.SelectedItem.Text;
string resultstr = "";
switch (type)
{
case "学号":
resultstr = "select * from tb_score where StudentID like '%" + txtkey.Text.Trim() + "%' and LessonName='" + Session["KCname"].ToString() + "'";
BaseClass.BindDG(gvExaminationresult, "ID", resultstr, "stuInfo");
break;
case "姓名":
resultstr = "select * from tb_score where StudentName like '%" + txtkey.Text.Trim() + "%' and LessonName='" + Session["KCname"].ToString() + "'";
BaseClass.BindDG(gvExaminationresult, "ID", resultstr, "stuInfo");
break;
}

我在公共类文件建立了绑定GridView控件的方法
public static void BindDG(GridView dg, string id, string strSql, string Tname) //建立绑定GridView控件的方法
{
SqlConnection conn = DBCon(); //建立数据库连接
SqlDataAdapter sda = new SqlDataAdapter(strSql, conn);//建立SqlDataAdapter对象,更新SQL语句和数据库连接
DataSet ds = new DataSet();//创建数据集
sda.Fill(ds, Tname);//调用Fill方法填充DataSet
dg.DataSource = ds.Tables[Tname]; //设置绑定数据源
dg.DataKeyNames = new string[] { id };//设置主键
dg.DataBind(); //绑定控件
}
public static void OperateData(string strsql) //建立一个执行SQL语句的方法OperateData
{
SqlConnection conn = DBCon(); //连接数据库
conn.Open(); //打开数据库
SqlCommand cmd = new SqlCommand(strsql, conn);//创建SqlCommand对象
cmd.ExecuteNonQuery();//调用cmd.ExecuteNonQuery方法执行SQL语句
conn.Close(); //关闭连接
}
...全文
247 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2016-04-18
  • 打赏
  • 举报
回复
OperateData方法根本没用,上面没有con.Open(); 需要贴出全部代码才能分析清楚
zyp_xina 2016-04-18
  • 打赏
  • 举报
回复
谢谢大家的帮忙,数据库已经连接了。ds.Tables[Tname] 语句的调试画面页面是登录页面,不过问题已经解决,重点是我都不知道怎样解决的。Columns> <asp:BoundField DataField="StudentID" HeaderText="学号"> <ItemStyle HorizontalAlign="Center" Width="120px" /> </asp:BoundField> <asp:BoundField DataField="StudentName" HeaderText="姓名"> <ItemStyle HorizontalAlign="Center" Width="100px" /> </asp:BoundField> <asp:BoundField DataField="LessonName" HeaderText="考试科目"> <ItemStyle HorizontalAlign="Center" Width="120px" /> </asp:BoundField> <asp:BoundField DataField="score" HeaderText="分数"> <ItemStyle HorizontalAlign="Center" Width="30px" /> </asp:BoundField> <asp:CommandField HeaderText="删除" ShowDeleteButton="True"> <ItemStyle HorizontalAlign="Center" Width="30px" /> </asp:CommandField> 原来是这样子设置列的,后来变成了这样子 <Columns> <asp:BoundField DataField="StudentID" HeaderText="学号" /> <asp:BoundField DataField="StudentName" HeaderText="姓名" /> <asp:BoundField DataField="LessonName" HeaderText="考试科目" /> <asp:BoundField DataField="score" HeaderText="分数" /> <asp:CommandField HeaderText="删除" ShowDeleteButton="True" /> </Columns> 结果就行了,应该和这个无关的吧。
  • 打赏
  • 举报
回复
贴出你对于 ds.Tables[Tname] 语句的调试画面,看看你调试到了什么?!
範先森 2016-04-17
  • 打赏
  • 举报
回复
是不是应该在Bind事件里加个conn.Open(); 这个?

62,046

社区成员

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

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

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

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