用treeview关联的datagridview,通过点treeview的节点来查询数据,通过datagridview来显示
在登陆界面中传过来的用户名s_CustomerID来查询相关的信息。
现在的状况是传值,查询一切正常,就是datagridview不显示数据。不知道是哪里错了,麻烦大家看看下面是代码:
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;public partial class Detail : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{ }
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string s_CustomerID = Request.QueryString["s_CustomerID"];
SqlConnection con = new SqlConnection("Data Source=WWW-3E180DC04B4;Initial Catalog=Rysm;Integrated Security=True");
con.Open();
String str_c_detail = "SELECT * FROM c_detail where CustomerID ='" + s_CustomerID + "'";
SqlCommand com_c_detail = new SqlCommand(str_c_detail,con); DataSet ds = new DataSet(); string Va = TreeView1.SelectedNode.Value;
Label1.Text = "TreeView1.SelectedNode.Value= " + Va;
if (Va == "用户基本信息")
{
SqlDataAdapter da = new SqlDataAdapter(com_c_detail);
da.Fill(ds);
this.GridView1.DataSource = ds.Tables[0];
con.Close();
}
}
}
在登陆界面中传过来的用户名s_CustomerID来查询相关的信息。
现在的状况是传值,查询一切正常,就是datagridview不显示数据。不知道是哪里错了,麻烦大家看看下面是代码:
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;public partial class Detail : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{ }
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string s_CustomerID = Request.QueryString["s_CustomerID"];
SqlConnection con = new SqlConnection("Data Source=WWW-3E180DC04B4;Initial Catalog=Rysm;Integrated Security=True");
con.Open();
String str_c_detail = "SELECT * FROM c_detail where CustomerID ='" + s_CustomerID + "'";
SqlCommand com_c_detail = new SqlCommand(str_c_detail,con); DataSet ds = new DataSet(); string Va = TreeView1.SelectedNode.Value;
Label1.Text = "TreeView1.SelectedNode.Value= " + Va;
if (Va == "用户基本信息")
{
SqlDataAdapter da = new SqlDataAdapter(com_c_detail);
da.Fill(ds);
this.GridView1.DataSource = ds.Tables[0];
con.Close();
}
}
}
这句话打个断点,跟踪下,有没有值。如果有的话,再看看SELECT * FROM c_detail where CustomerID ='" + s_CustomerID + "'"这句话在sql查询分析器上能不能查出数据来,(+ s_CustomerID 这个变量填你上面string s_CustomerID 的真实值)。
this.gridview1.databind();
你最好打断点跟下!看下能否查出数据?
这个ds.Tables[0]是否有数据, 如果没有数据 那就上面查询的问题了
//既然用适配器的话,连接可以不考虑打开和关闭
SqlDataAdapter da = new SqlDataAdapter(com_c_detail,con);
断点查一下是不是传值的问题,可能性最大
后面加:
this.GridView1.DataBind();
另外conn.close 不能放在If里面,要确保不管在什么情况下都要把连接释放掉
this.GridView1.DataSource = ds.Tables[0].DefaultView;
//Get letter from DataBase
DataSet ds_LetterManage = da_P_LetterManage.getLetterManage(strStuId, strSupId);
DataTable dt_LetterManage = ds_LetterManage.Tables[0];
DataTable dt_LM = new DataTable();
DataRow dr_LM;
//RECEIPT_DAY 也是DataGridView的那一列的DataPropertyName属性值
dt_LM.Columns.Add("RECEIPT_DAY");
dt_LM.Columns.Add("SENDING_DAY");
for (int j = 0; j < dt_LetterManage.Rows.Count; j++)
{
dr_LM = dt_LM.NewRow();
dr_LM[0] = dt_LetterManage.Rows[j]["RECEIPT_DAY"].ToString();
dr_LM[1] = dt_LetterManage.Rows[j]["SENDING_DAY"].ToString();
dt_LM.Rows.Add(dr_LM);
}
this.grdLetterManage.DataSource = dt_LM.DefaultView;