a.aspx.cs文件
sqlcon = new SqlConnection(connstr);
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
String sqlstr = "delete from PD_Admin where Admin_XH='" + GridView1.DataKeys[i].Value + "'";
SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
}
b.aspx.cs文件
sqlcon = new SqlConnection(connstr);
String sqlstr = "select * from PD_Admin where Admin_XH='" + Session["UserID"] + "'";
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
myda.Fill(myds, "PD_Admin");
DataTable myTable = myds.Tables["PD_Admin"];
if (myTable.Rows.Count > 0)
{
X_Name.Text = myTable.Rows[0]["Admin_ZH"].ToString();
}
怎么获得不到session的值,哪里错了?
断点跟踪测试session值为空
15 个解决方案
#1
要确定在a页面中session不为空啊 你gridview中只选中一个?
选的多了 估计都是最后一个了
你先把session值在a页面中打印出来试试
如果有的话b页面肯定能找到
选的多了 估计都是最后一个了
你先把session值在a页面中打印出来试试
如果有的话b页面肯定能找到
#2
if (cbox.Checked == true)
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
进入这个if 了么?在这打个断点...
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
进入这个if 了么?在这打个断点...
#3
在这打个断点 就直接过去了 没信息提示
#4
怎么办啊,急啊
#5
在a.aspx 我把Session赋给label.text,没有数据
怎么才能获得值啊
怎么才能获得值啊
#6
if (cbox.Checked == true)断点设置在这,我想if里面根本就没进去.所以session一直为空.
我在指出你代码可能存在的几点问题
1.如果你是单行删除,为什么用CheckBox呢. 如果是多行,即使session得到了值,在b.aspx页面中永远都是最后选中的那一个值.
2. 在a.aspx.cs 中最好不要在循环里面多次打开,关闭数据库.如果要执行多行,最好拼成一条语句执行.
#7
a.aspx.cs文件
sqlcon = new SqlConnection(connstr);
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
我知道这一行代码错误, GridView1.DataKeys[i].Value.ToString 是一行的值,不是某一字段的值,不知怎么改,各位帮帮忙啊! String sqlstr = "delete from PD_Admin where Admin_XH='" + GridView1.DataKeys[i].Value + "'";
sqlcon = new SqlConnection(connstr);
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
我知道这一行代码错误, GridView1.DataKeys[i].Value.ToString 是一行的值,不是某一字段的值,不知怎么改,各位帮帮忙啊! String sqlstr = "delete from PD_Admin where Admin_XH='" + GridView1.DataKeys[i].Value + "'";
#8
GridView1中的属性 DataKeyNames="Admin_XH" 这你设置了没有
#9
设置了
#10
谁能给我建议或好的解决方法,让我来解决这个问题,我会把我仅剩余的80分全给他!急啊!
#11
DataGrid_News.DataKeys[e.Item.ItemIndex];
#12
DataGrid_News.DataKeys[e.Item.ItemIndex
][0].ToString();得到该行第一个单元格的值,根据您的需要选择哪个字段的值
#13
补充说明:
DataGrid_News.DataKeys[i][0].ToString();得到该行第一个单元格的值,根据您的需要选择哪个字段的值
DataGrid_News.DataKeys[i][0].ToString();得到该行第一个单元格的值,根据您的需要选择哪个字段的值
#14
用的是gridview,不是datagrid!
#15
已解决
#1
要确定在a页面中session不为空啊 你gridview中只选中一个?
选的多了 估计都是最后一个了
你先把session值在a页面中打印出来试试
如果有的话b页面肯定能找到
选的多了 估计都是最后一个了
你先把session值在a页面中打印出来试试
如果有的话b页面肯定能找到
#2
if (cbox.Checked == true)
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
进入这个if 了么?在这打个断点...
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
进入这个if 了么?在这打个断点...
#3
在这打个断点 就直接过去了 没信息提示
#4
怎么办啊,急啊
#5
在a.aspx 我把Session赋给label.text,没有数据
怎么才能获得值啊
怎么才能获得值啊
#6
if (cbox.Checked == true)断点设置在这,我想if里面根本就没进去.所以session一直为空.
我在指出你代码可能存在的几点问题
1.如果你是单行删除,为什么用CheckBox呢. 如果是多行,即使session得到了值,在b.aspx页面中永远都是最后选中的那一个值.
2. 在a.aspx.cs 中最好不要在循环里面多次打开,关闭数据库.如果要执行多行,最好拼成一条语句执行.
#7
a.aspx.cs文件
sqlcon = new SqlConnection(connstr);
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
我知道这一行代码错误, GridView1.DataKeys[i].Value.ToString 是一行的值,不是某一字段的值,不知怎么改,各位帮帮忙啊! String sqlstr = "delete from PD_Admin where Admin_XH='" + GridView1.DataKeys[i].Value + "'";
sqlcon = new SqlConnection(connstr);
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
Session["UserID"] = GridView1.DataKeys[i].Value.ToString;
我知道这一行代码错误, GridView1.DataKeys[i].Value.ToString 是一行的值,不是某一字段的值,不知怎么改,各位帮帮忙啊! String sqlstr = "delete from PD_Admin where Admin_XH='" + GridView1.DataKeys[i].Value + "'";
#8
GridView1中的属性 DataKeyNames="Admin_XH" 这你设置了没有
#9
设置了
#10
谁能给我建议或好的解决方法,让我来解决这个问题,我会把我仅剩余的80分全给他!急啊!
#11
DataGrid_News.DataKeys[e.Item.ItemIndex];
#12
DataGrid_News.DataKeys[e.Item.ItemIndex
][0].ToString();得到该行第一个单元格的值,根据您的需要选择哪个字段的值
#13
补充说明:
DataGrid_News.DataKeys[i][0].ToString();得到该行第一个单元格的值,根据您的需要选择哪个字段的值
DataGrid_News.DataKeys[i][0].ToString();得到该行第一个单元格的值,根据您的需要选择哪个字段的值
#14
用的是gridview,不是datagrid!
#15
已解决