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循环。。。您遇到错误是因为第二次要更新/插入时已关闭连接。。。