请问多个FormView,如何从第一个SqlDataSource里获取UserID在后面的SqlDataSource里用?

时间:2022-11-28 20:39:54
第一个SqlDataSource打开Users表,获取ID值,传递到其他的SqlDataSource里使用。应该怎么弄呢?

19 个解决方案

#1


在cs里面写个返回datatable的方法,参数为id
sqlDataSource='<%# GetDataTable(Eval("ID")) %>'
GetDataTable为后台函数

#2


例如:a是SqlDataSource1获取的数据id

SqlDataSource2.SelectParameters["参数"].DefaultValue=a;

#3


你第一个Datasource怎么select的?如果你知道怎么设置selectparameter,就知道怎么设置第二个Datasource的selectparameter。

#4


引用 2 楼 koukoujiayi 的回复:
例如:a是SqlDataSource1获取的数据id

SqlDataSource2.SelectParameters["参数"].DefaultValue=a;

那这个a怎么获得啊

#5


引用 3 楼 sp1234 的回复:
你第一个Datasource怎么select的?如果你知道怎么设置selectparameter,就知道怎么设置第二个Datasource的selectparameter。

我在Page_Load里写的:       
SqlDataSource1.SelectCommand = "select * from Users where Uname='" + Session["ChosenUname"].ToString() + "'";

#6


引用 3 楼 sp1234 的回复:
你第一个Datasource怎么select的?如果你知道怎么设置selectparameter,就知道怎么设置第二个Datasource的selectparameter。

我现在这样,selectcommand写:SELECT * FROM [Users] WHERE [Uname] = @Uname
然后在PageLoad里SqlDataSource1.SelectParameters["Uname"].DefaultValue = Session["ChosenUname"].ToString();

这样效果一样,但是这个可以赋值,却提不出值来啊……

#7


引用 5 楼 zhoumeng1987 的回复:
我在Page_Load里写的:  
SqlDataSource1.SelectCommand = "select * from Users where Uname='" + ……


显然,第二个就是类似于这样的:

SqlDataSource1.SelectCommand = 
   "select * from table2 inner join Users on table2.ff=Users.gg where Users.Uname='" + 
   ((string)Session["ChosenUname"]).Replace("'","''") + "'";


#8


哦,是2而不是1:

SqlDataSource2.SelectCommand =  
  "select * from table2 inner join Users on table2.ff=Users.gg where Users.Uname='" +  
  ((string)Session["ChosenUname"]).Replace("'","''") + "'";

#9


引用 8 楼 sp1234 的回复:
哦,是2而不是1:

SqlDataSource2.SelectCommand =  
  "select * from table2 inner join Users on table2.ff=Users.gg where Users.Uname='" +  
  ((string)Session["ChosenUname"]).Replace("'","''") + "'";

我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

#10


引用 9 楼 zhoumeng1987 的回复:
我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

如果SqlDataSource1绑定了FormView1,
则某个记录的ID在FormView1中取:
string id=FormView1.SelectedValue.ToString();

#11


同上~~~~`

#12


引用 10 楼 koukoujiayi 的回复:
引用 9 楼 zhoumeng1987 的回复:
我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

如果SqlDataSource1绑定了FormView1,
则某个记录的ID在FormView1中取:
string id=FormView1.SelectedValue.ToString();

哦,太好了~灰常感谢~

#13


引用 10 楼 koukoujiayi 的回复:
引用 9 楼 zhoumeng1987 的回复:
我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

如果SqlDataSource1绑定了FormView1,
则某个记录的ID在FormView1中取:
string id=FormView1.SelectedValue.ToString();

呃,我这样弄了之后会报错哎。。。
“未将对象引用设置到对象的实例。 ”

#14


1.FormView1的DataKeyName设置了吗??
2.你想在哪个事件中获取??

#15


引用 14 楼 koukoujiayi 的回复:
1.FormView1的DataKeyName设置了吗??
2.你想在哪个事件中获取??

1、设了,DataKeyNames="ID"
2、我就想在PageLoad里

#16


要在绑定以后取!!
如在FormView1_PreRender事件中就可以取到!!

#17


引用 16 楼 koukoujiayi 的回复:
要在绑定以后取!!
如在FormView1_PreRender事件中就可以取到!!


可是我想打开页面之后该显示的都显示出来,不用再按什么了呀。。。有没有页面载入完毕后自动触发的事件呀

#18


呵呵!!FormView1_PreRender就是页面载入完毕自动触发的事件呀!!

#19


引用 18 楼 koukoujiayi 的回复:
呵呵!!FormView1_PreRender就是页面载入完毕自动触发的事件呀!!

可是我加了个Label想显示一下获取到的ID,都没显示啊。。。

 protected void FormView1_PreRender(object sender, EventArgs e)
    {
        string uid = FormView1.SelectedValue.ToString();
        TT.Text = uid;
    }

#1


在cs里面写个返回datatable的方法,参数为id
sqlDataSource='<%# GetDataTable(Eval("ID")) %>'
GetDataTable为后台函数

#2


例如:a是SqlDataSource1获取的数据id

SqlDataSource2.SelectParameters["参数"].DefaultValue=a;

#3


你第一个Datasource怎么select的?如果你知道怎么设置selectparameter,就知道怎么设置第二个Datasource的selectparameter。

#4


引用 2 楼 koukoujiayi 的回复:
例如:a是SqlDataSource1获取的数据id

SqlDataSource2.SelectParameters["参数"].DefaultValue=a;

那这个a怎么获得啊

#5


引用 3 楼 sp1234 的回复:
你第一个Datasource怎么select的?如果你知道怎么设置selectparameter,就知道怎么设置第二个Datasource的selectparameter。

我在Page_Load里写的:       
SqlDataSource1.SelectCommand = "select * from Users where Uname='" + Session["ChosenUname"].ToString() + "'";

#6


引用 3 楼 sp1234 的回复:
你第一个Datasource怎么select的?如果你知道怎么设置selectparameter,就知道怎么设置第二个Datasource的selectparameter。

我现在这样,selectcommand写:SELECT * FROM [Users] WHERE [Uname] = @Uname
然后在PageLoad里SqlDataSource1.SelectParameters["Uname"].DefaultValue = Session["ChosenUname"].ToString();

这样效果一样,但是这个可以赋值,却提不出值来啊……

#7


引用 5 楼 zhoumeng1987 的回复:
我在Page_Load里写的:  
SqlDataSource1.SelectCommand = "select * from Users where Uname='" + ……


显然,第二个就是类似于这样的:

SqlDataSource1.SelectCommand = 
   "select * from table2 inner join Users on table2.ff=Users.gg where Users.Uname='" + 
   ((string)Session["ChosenUname"]).Replace("'","''") + "'";


#8


哦,是2而不是1:

SqlDataSource2.SelectCommand =  
  "select * from table2 inner join Users on table2.ff=Users.gg where Users.Uname='" +  
  ((string)Session["ChosenUname"]).Replace("'","''") + "'";

#9


引用 8 楼 sp1234 的回复:
哦,是2而不是1:

SqlDataSource2.SelectCommand =  
  "select * from table2 inner join Users on table2.ff=Users.gg where Users.Uname='" +  
  ((string)Session["ChosenUname"]).Replace("'","''") + "'";

我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

#10


引用 9 楼 zhoumeng1987 的回复:
我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

如果SqlDataSource1绑定了FormView1,
则某个记录的ID在FormView1中取:
string id=FormView1.SelectedValue.ToString();

#11


同上~~~~`

#12


引用 10 楼 koukoujiayi 的回复:
引用 9 楼 zhoumeng1987 的回复:
我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

如果SqlDataSource1绑定了FormView1,
则某个记录的ID在FormView1中取:
string id=FormView1.SelectedValue.ToString();

哦,太好了~灰常感谢~

#13


引用 10 楼 koukoujiayi 的回复:
引用 9 楼 zhoumeng1987 的回复:
我懂了。。。这样的确可以的~
不过,我能把SqlDataSource1里的ID值弄出来吗??比如赋值到一个变量里去之类的

如果SqlDataSource1绑定了FormView1,
则某个记录的ID在FormView1中取:
string id=FormView1.SelectedValue.ToString();

呃,我这样弄了之后会报错哎。。。
“未将对象引用设置到对象的实例。 ”

#14


1.FormView1的DataKeyName设置了吗??
2.你想在哪个事件中获取??

#15


引用 14 楼 koukoujiayi 的回复:
1.FormView1的DataKeyName设置了吗??
2.你想在哪个事件中获取??

1、设了,DataKeyNames="ID"
2、我就想在PageLoad里

#16


要在绑定以后取!!
如在FormView1_PreRender事件中就可以取到!!

#17


引用 16 楼 koukoujiayi 的回复:
要在绑定以后取!!
如在FormView1_PreRender事件中就可以取到!!


可是我想打开页面之后该显示的都显示出来,不用再按什么了呀。。。有没有页面载入完毕后自动触发的事件呀

#18


呵呵!!FormView1_PreRender就是页面载入完毕自动触发的事件呀!!

#19


引用 18 楼 koukoujiayi 的回复:
呵呵!!FormView1_PreRender就是页面载入完毕自动触发的事件呀!!

可是我加了个Label想显示一下获取到的ID,都没显示啊。。。

 protected void FormView1_PreRender(object sender, EventArgs e)
    {
        string uid = FormView1.SelectedValue.ToString();
        TT.Text = uid;
    }

#20