一、如何使用变量给数据源控件参数赋值
2012-12-03 19:27
459 查看
一、如何使用变量给数据源控件参数赋值
在VS2005中数据源控件的参数类型有六种: ControlParameter 、CookieParameter 、FormParameter 、ProfileParameter 、QueryStringParameter 、SessionParameter。利用这些参数类型可以很方便的给数据源控件的参数赋值。但在实际编程中我们经常要使用变量给数据源控件的参数赋值,那么如何使用变量来赋值呢?
方法如下:
1、在前台代码中写好带参数的查询语句:
<asp:SqlDataSource ID="SqlDataSourcedown" runat="server" ConnectionString="<%$ ConnectionStrings:articleConnectionString %>"
SelectCommand="SELECT TOP (15) id, name, type
FROM kejian WHERE (isfabu = 1) AND (kemuid = @kemuid) AND (lianjiid=@lianjiid) ORDER BY downn DESC">
<SelectParameters>
<asp:Parameter Name="kemuid"
/>
<asp:Parameter Name="lianjiid"
/>
</SelectParameters>
</asp:SqlDataSource>
2、在后台代码中加入如下语句:
int kemuid = 0;
int lianjiid = 0;
protected void Page_Load(object sender, EventArgs e)
{
int id = Convert.ToInt32(Request.QueryString["id"]);
string sql = "select kemuid,lianjiid from kejian where id=" + id;
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["articleConnectionString"].ConnectionString))
{
using (SqlCommand command = new SqlCommand(sql, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
kemuid = (int)reader["kemuid"];
lianjiid = (int)reader["lianjiid"];
}
}
}
}
this.SqlDataSourcedown.SelectParameters.Clear();
this.SqlDataSourcedown.SelectParameters.Add("kemuid", System.TypeCode.Int32, kemuid.ToString());
this.SqlDataSourcedown.SelectParameters.Add("lianjiid", System.TypeCode.Int32, lianjiid.ToString());
}
二、如何动态增减数据源控件参数并支持分页
适于环境:
页面search.aspx接受两个查询变量kemu及name,当kemu=0时进行全部科目的查询,当kemu!=0时进行当前科目的查询,并且要求对查询的结果进行分页。
实现方法:
在前台代码中加入:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:articleConnectionString %>"
SelectCommand="SELECT kejian.id, kejian.name, kejian.huanjing, kejian.type, kejian.downn, kejian.isfabu, kejian.stars, kejian.size, kejian.kemuid, kejian.updowntime, kemu.name AS kemu, lianji.name AS lianji FROM kejian INNER
JOIN kemu ON kejian.kemuid = kemu.id INNER JOIN lianji ON kejian.lianjiid = lianji.id WHERE (kejian.name LIKE N'%' + @name + N'%') AND (kejian.kemuid = @kemu) AND (kejian.isfabu = 1) ORDER BY kejian.updowntime DESC">
<SelectParameters>
<asp:Parameter Name="name" />
<asp:Parameter Name="kemu" />
</SelectParameters>
</asp:SqlDataSource>
在后台代码中加入:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridViewDataBind(Convert.ToInt32(Request.QueryString["kemu"]), Request.QueryString["name"]);
}
}
private void GridViewDataBind(int kemu, string name)
{
string sql = "SELECT kejian.id, kejian.name, kemu.name AS kemu, lianji.name AS lianji, kejian.huanjing, kejian.type, kejian.downn, kejian.stars, kejian.size, kejian.kemuid ";
sql += " FROM kejian INNER JOIN kemu ON kejian.kemuid = kemu.id INNER JOIN lianji ON kejian.lianjiid = lianji.id ";
sql += " WHERE (kejian.isfabu = 1) ";
if (kemu == 0)
{
sql += " AND (kejian.name LIKE N'%' + @name + N'%') ORDER BY kejian.updownuserid DESC";
this.SqlDataSource1.SelectParameters.Clear();
this.SqlDataSource1.SelectParameters.Add("name", System.TypeCode.String, name);
}
else
{
sql += " AND (kejian.kemuid = @kemu) AND (kejian.name LIKE N'%' + @name + N'%') ORDER BY kejian.updownuserid DESC";
this.SqlDataSource1.SelectParameters.Clear();
this.SqlDataSource1.SelectParameters.Add("kemu", System.TypeCode.String, kemu.ToString());
this.SqlDataSource1.SelectParameters.Add("name", System.TypeCode.String, name);
}
SqlDataSource1.SelectCommand = sql;
}
protected void GridView1_PageIndexChanged(object sender, EventArgs e)
{
GridViewDataBind(Convert.ToInt32(Request.QueryString["kemu"]), Request.QueryString["name"]);
}
在VS2005中数据源控件的参数类型有六种: ControlParameter 、CookieParameter 、FormParameter 、ProfileParameter 、QueryStringParameter 、SessionParameter。利用这些参数类型可以很方便的给数据源控件的参数赋值。但在实际编程中我们经常要使用变量给数据源控件的参数赋值,那么如何使用变量来赋值呢?
方法如下:
1、在前台代码中写好带参数的查询语句:
<asp:SqlDataSource ID="SqlDataSourcedown" runat="server" ConnectionString="<%$ ConnectionStrings:articleConnectionString %>"
SelectCommand="SELECT TOP (15) id, name, type
FROM kejian WHERE (isfabu = 1) AND (kemuid = @kemuid) AND (lianjiid=@lianjiid) ORDER BY downn DESC">
<SelectParameters>
<asp:Parameter Name="kemuid"
/>
<asp:Parameter Name="lianjiid"
/>
</SelectParameters>
</asp:SqlDataSource>
2、在后台代码中加入如下语句:
int kemuid = 0;
int lianjiid = 0;
protected void Page_Load(object sender, EventArgs e)
{
int id = Convert.ToInt32(Request.QueryString["id"]);
string sql = "select kemuid,lianjiid from kejian where id=" + id;
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["articleConnectionString"].ConnectionString))
{
using (SqlCommand command = new SqlCommand(sql, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
kemuid = (int)reader["kemuid"];
lianjiid = (int)reader["lianjiid"];
}
}
}
}
this.SqlDataSourcedown.SelectParameters.Clear();
this.SqlDataSourcedown.SelectParameters.Add("kemuid", System.TypeCode.Int32, kemuid.ToString());
this.SqlDataSourcedown.SelectParameters.Add("lianjiid", System.TypeCode.Int32, lianjiid.ToString());
}
二、如何动态增减数据源控件参数并支持分页
适于环境:
页面search.aspx接受两个查询变量kemu及name,当kemu=0时进行全部科目的查询,当kemu!=0时进行当前科目的查询,并且要求对查询的结果进行分页。
实现方法:
在前台代码中加入:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:articleConnectionString %>"
SelectCommand="SELECT kejian.id, kejian.name, kejian.huanjing, kejian.type, kejian.downn, kejian.isfabu, kejian.stars, kejian.size, kejian.kemuid, kejian.updowntime, kemu.name AS kemu, lianji.name AS lianji FROM kejian INNER
JOIN kemu ON kejian.kemuid = kemu.id INNER JOIN lianji ON kejian.lianjiid = lianji.id WHERE (kejian.name LIKE N'%' + @name + N'%') AND (kejian.kemuid = @kemu) AND (kejian.isfabu = 1) ORDER BY kejian.updowntime DESC">
<SelectParameters>
<asp:Parameter Name="name" />
<asp:Parameter Name="kemu" />
</SelectParameters>
</asp:SqlDataSource>
在后台代码中加入:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridViewDataBind(Convert.ToInt32(Request.QueryString["kemu"]), Request.QueryString["name"]);
}
}
private void GridViewDataBind(int kemu, string name)
{
string sql = "SELECT kejian.id, kejian.name, kemu.name AS kemu, lianji.name AS lianji, kejian.huanjing, kejian.type, kejian.downn, kejian.stars, kejian.size, kejian.kemuid ";
sql += " FROM kejian INNER JOIN kemu ON kejian.kemuid = kemu.id INNER JOIN lianji ON kejian.lianjiid = lianji.id ";
sql += " WHERE (kejian.isfabu = 1) ";
if (kemu == 0)
{
sql += " AND (kejian.name LIKE N'%' + @name + N'%') ORDER BY kejian.updownuserid DESC";
this.SqlDataSource1.SelectParameters.Clear();
this.SqlDataSource1.SelectParameters.Add("name", System.TypeCode.String, name);
}
else
{
sql += " AND (kejian.kemuid = @kemu) AND (kejian.name LIKE N'%' + @name + N'%') ORDER BY kejian.updownuserid DESC";
this.SqlDataSource1.SelectParameters.Clear();
this.SqlDataSource1.SelectParameters.Add("kemu", System.TypeCode.String, kemu.ToString());
this.SqlDataSource1.SelectParameters.Add("name", System.TypeCode.String, name);
}
SqlDataSource1.SelectCommand = sql;
}
protected void GridView1_PageIndexChanged(object sender, EventArgs e)
{
GridViewDataBind(Convert.ToInt32(Request.QueryString["kemu"]), Request.QueryString["name"]);
}
相关文章推荐
- 如何使用变量给数据源控件参数赋值、如何动态增减数据源控件参数并支持分页
- 如何使用变量给数据源控件参数赋值、如何动态增减数据源控件参数并支持分页
- 如何在报表参数中使用变量
- GridView的HyperLinkField的DataNavigateUrlFormatString如何使用自定义的变量,而不是数据库绑定的值.报错:指定的参数已超出有效值的范围。参数名: index
- Oracle中使用PL/SQL如何定义参数、参数赋值、输出参数和 if 判断
- 关于如何使用反射声明一个泛型类型变量(泛型参数是动态的)的问题
- 数据源控件如何使用Session做参数,尤其是参数是一个对象时候
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
- bat文件中使用DOS命令如何截取字符串&如何执行“字符串命令”&获取文件文件内容并赋值给变量
- AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
- AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
- 什么时候使用构造方法;this关键;private? 如何给成员变量赋值?
- 使用 OleDbParameter 变量 时要注意参数和参数数组,及数组赋值时的顺序
- orcle中如何使用动态游标来对变量进行赋值!
- 如何使用java validation api进行参数校验
- 用strcat()时,参数是int的整形变量,如何转换成char *
- 如何恢复linux的环境变量ubuntu中root用户没有办法使用命令
- 如何使用cmd添加环境变量
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别