C#函数用作全局
我的页面中有多个下拉列表。要加载该项,我使用以下代码:C#函数用作全局,c#,asp.net,C#,Asp.net,我的页面中有多个下拉列表。要加载该项,我使用以下代码: protected void GetItemList() { using (SqlCommand cmd = new SqlCommand("select ID, Group from TableGroup order by Group")) { cmd.CommandType = CommandType.Text; cmd.Connection = conn; conn.Op
protected void GetItemList()
{
using (SqlCommand cmd = new SqlCommand("select ID, Group from TableGroup order by Group"))
{
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
cboGroup.DataSource = cmd.ExecuteReader();
cboGroup.DataTextField = "Group";
cboGroup.DataValueField = "ID";
cboGroup.DataBind();
conn.Close();
}
}
然后在加载页面时调用上面的函数
我的问题是,如果代码用于多个dropdownlist,我如何创建一个类似于上面代码的函数
例如,我所需要做的只是更改查询和dropdownlist Id。将dropdownlist和查询作为参数传递
protected void GetItemList(DropDownList ddl, string query, string text, string value)
{
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
ddl.DataSource = cmd.ExecuteReader();
ddl.DataTextField = text;
ddl.DataValueField = value;
ddl.DataBind();
conn.Close();
}
}
调用如下函数:
GetItemList(cboGroup, "select ID, Group from TableGroup order by Group")
将DropDownList和Query作为参数传递
protected void GetItemList(DropDownList ddl, string query, string text, string value)
{
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
ddl.DataSource = cmd.ExecuteReader();
ddl.DataTextField = text;
ddl.DataValueField = value;
ddl.DataBind();
conn.Close();
}
}
调用如下函数:
GetItemList(cboGroup, "select ID, Group from TableGroup order by Group")
查看
SqlParameter
@john没有参数。可能重复将GetItemList()
更改为GetItemList(string dropDownName)
并通过SqlParameter
@Patrick Hofman将其传递给SqlCommand
,基于“我只需更改查询和dropdownlist Id即可”,我假设他需要使用WHERE
子句过滤TableGroup
。查看SqlParameter
@john没有参数。可能会重复将GetItemList()
更改为GetItemList(string dropDownName)
并根据“我所需要做的就是更改查询和dropdownlist Id。“,我假设他需要用WHERE
子句过滤TableGroup
,我真的不喜欢这样。这是sql注入的邀请。每个方法都应该有一个有意义的名称,比如FillGroupList
,FillItemList
或FillUserList
,查询应该封装在那里。还有,我怎样才能将sql参数传递给这个方法?@TimSchmelter,但是这里没有连接,我们在代码中硬编码查询。总有一天会有的@Sankar@TimSchmelter我想问一下,如果你是唯一一个从其他方法访问该方法的人,为什么你认为这是sql注入的邀请。基本上,他是唯一一个为GetItemList提供输入的人。没有使用页面输入,因此。@H.Mikhaeljan:因为这种错误模式将在整个项目中使用。明天OP将连接sql查询,另一天他将允许用户输入部分查询。我在哪里可以传递参数?我真的不喜欢这样。这是sql注入的邀请。每个方法都应该有一个有意义的名称,比如FillGroupList
,FillItemList
或FillUserList
,查询应该封装在那里。还有,我怎样才能将sql参数传递给这个方法?@TimSchmelter,但是这里没有连接,我们在代码中硬编码查询。总有一天会有的@Sankar@TimSchmelter我想问一下,如果你是唯一一个从其他方法访问该方法的人,为什么你认为这是sql注入的邀请。基本上,他是唯一一个为GetItemList提供输入的人。没有使用页面输入,因此。@H.Mikhaeljan:因为这种错误模式将在整个项目中使用。明天OP将连接sql查询,另一天他将允许用户输入部分查询。我在哪里可以传递参数?