Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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,我有一个复选框列表控件和更新按钮: <asp:CheckBoxList ID="moduleselect" runat="server" DataSourceID="semester2" DataTextField="module_name" DataValueField="module_id"></asp:CheckBoxList> <br /> <asp:Button ID="uploadbut

我有一个复选框列表控件和更新按钮:

<asp:CheckBoxList ID="moduleselect" runat="server" DataSourceID="semester2" DataTextField="module_name" DataValueField="module_id"></asp:CheckBoxList>
            <br />
                <asp:Button ID="uploadbutton" runat="server" Text="Choose Modules" OnClick="uploadbutton_Click" CssClass="submitbtn" />
                <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" CssClass="submitbtn" />


其中包含供学生选择的模块列表,单击上载按钮时,应更新数据库表

我有下面的C#

公共部分类测试:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
String name=Request.QueryString[“studentno”];
username.Text=名称;
}
受保护的无效上载按钮\u单击(对象发送者,事件参数e)
{
字符串user=username.Text;
string ConnectionString=WebConfiguration Manager.ConnectionString[“ConnectionString”]。ConnectionString;
SqlConnection myConnection=新的SqlConnection(ConnectionString);
myConnection.Open();
int count=moduleselect.Items.count;
for(int i=0;i

但是,当我在单击“上载”按钮时选择一些模块时,它只会更新所选的初始选项,而不是所有模块。我对web开发非常陌生,因此非常感谢您的帮助。

首先,您需要循环以获取
复选框的选中值。使用
SelectedValue
将只获取第一个
您选择的

例如,如下所示

int count = moduleselect.Items.Count;

for(int i = 0; i < count; i++)
{
    if (moduleselect.Items[i].Selected)
    {
        string value = moduleselect.Items[i].Value;

         // Do Insert
    }
}
int count = moduleselect.Items.Count;
string value = string.Empty;            

for(int i = 0; i < count; i++)
{
    if (moduleselect.Items[i].Selected)
    {
        value = moduleselect.Items[i].Value + ",";
    }
}

// Trim the last ,
value = value.TrimEnd(',');

// Insert here
int count=moduleselect.Items.count;
for(int i=0;i
这将插入许多具有不同模块的行。。
如果要添加一行并用分隔符分隔,
如下所示

int count = moduleselect.Items.Count;

for(int i = 0; i < count; i++)
{
    if (moduleselect.Items[i].Selected)
    {
        string value = moduleselect.Items[i].Value;

         // Do Insert
    }
}
int count = moduleselect.Items.Count;
string value = string.Empty;            

for(int i = 0; i < count; i++)
{
    if (moduleselect.Items[i].Selected)
    {
        value = moduleselect.Items[i].Value + ",";
    }
}

// Trim the last ,
value = value.TrimEnd(',');

// Insert here
int count=moduleselect.Items.count;
字符串值=string.Empty;
for(int i=0;i
谢谢你的帮助,你可以看看我上面修改过的代码,告诉我哪里出了问题。我收到一个错误
ExecuteOnQuery需要一个打开的可用连接。连接的当前状态是关闭的。
@mcclosa将myConnection.Close()放入;跳出for循环。。。您遇到错误是因为第二次要更新/插入时已关闭连接。。。