首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net C#中将Checkboxlist更新为数据库

在asp.net C#中将Checkboxlist更新为数据库
EN

Stack Overflow用户
提问于 2013-05-25 04:49:28
回答 1查看 1.7K关注 0票数 0

我希望将多个复选框列表值更新到数据库中。我已经把我的支票清单从另一张表,也就是医药表里存起来了。现在我想把我的价值更新到咨询表,但是我不能。

`

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
     try
    {
       for (int i = 0; i < txtcheckbox.Items.Count - 1; i++)
        {
          if (txtcheckbox.Items[i].Selected == true)
          {
                str = str + txtcheckbox.Items[i].Text + ",";
            }
         }


        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        String sql = "UPDATE [consultation]  set mname3 = " + str + "  WHERE [conid] = @conid";

        con.Open();
        SqlCommand cmd = new SqlCommand(sql, con);

        cmd.Parameters.AddWithValue("@conid", txtconid);
        cmd.Parameters.AddWithValue("@mname3", str);

        int j = cmd.ExecuteNonQuery();
        if (j > 0)
        {
            Label2.Visible = true;
            Label2.Text = "Successfully Complete Dispensary";

            txtconid.Text = "";
        }
        else
        {
            Label2.Visible = true;
            Label2.Text = "Not Successfully Complete Dispensary";

            txtconid.Text = "";
        }
             con.Close();
       }
        catch 
        {
          Label2.Visible = true;
           Label2.Text = "Error";

            txtconid.Text = "";
        }
}







    `
EN

回答 1

Stack Overflow用户

发布于 2013-05-25 05:06:21

我想你在这里有例外。因为:

字符串sql = "UPDATE咨询集mname3 =“+ str +”其中conid = @conid";

这里使用字符串连接,您的sql查询如下: UPDATE咨询集mname3 = sometextvale,其中conid = @conid

我猜mname3有nvarchar类型,所以您需要将字符串值放在qoutes中:

String sql = "UPDATE咨询集mname3 = '“+ str +”' WHERE conid = @conid";

或者,您可以像前面对@conid一样,使用paramaeter进行sql查询:

字符串sql =“更新咨询集mname3 = @mname3,其中conid = @conid";

这是更好的安全解决方案。

一些补充意见:

(int i= 0;i< txtcheckbox.Items.Count - 1;i++)

你确定这里应该是txtcheckbox.Items.Count - 1吗?你会失去最后一个。

第二部分:将构建和执行查询(DAL)代码与某种业务逻辑混合在页面后面的代码中,这不是一个好的实践=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16746520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档