Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#函数用作全局_C#_Asp.net - Fatal编程技术网

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查询,另一天他将允许用户输入部分查询。我在哪里可以传递参数?