从两个列表框控件插入表中

时间:2011-08-11 00:34:03

标签: asp.net mysql sql ado.net

我需要将user_id和quiz_iz插入表列,我有以下代码,用于将一个控件中的多个选定值插入表列,但我无法弄清楚如何从值中插入2个字段在点击提交时,在两个控件上列出。

我正在使用odbc连接到mysql,那就是我需要插入的表位于....

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Collections.Specialized;
using System.Text;
using System.Data;
using System.Data.Odbc;

public partial class _Default : System.Web.UI.Page 
{

    protected void Page_Load(object sender, EventArgs e)
    {

    }

     private void InsertRecords(StringCollection sc, StringCollection sc2)
    {
        string ConnectionString = @"driver={MySQL ODBC 5.1 Driver};server=localhost;database=db_mydb;uid=;pwd=;";
        OdbcConnection conn = new OdbcConnection(ConnectionString);
        StringBuilder sb = new StringBuilder(string.Empty);
        StringBuilder sb2 = new StringBuilder(string.Empty);

        foreach (string item in sc)
        {

          const string sqlStatement = "INSERT INTO jos_jquarks_users_quizzes  (quiz_id,user_id) VALUES";

            sb.AppendFormat("{0}('{1}'); ", sqlStatement, item);
            sb2.AppendFormat("{0}('{1}'); ", sqlStatement, item);

        }

        try
        {

            conn.Open();

            OdbcCommand cmd = new OdbcCommand(sb.ToString(), conn);
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Script", "alert('Records Successfuly Saved!');", true);

        }

        catch (System.Data.SqlClient.SqlException ex)
        {

            string msg = "Insert Error:";
            msg += ex.Message;
            throw new Exception(msg);

        }

        finally
        {

            conn.Close();

        }

    }


    protected void Button1_Click(object sender, EventArgs e)
    {

        StringCollection sc = new StringCollection();
        StringCollection sc2 = new StringCollection();


        foreach (ListItem item in ListBox1.Items)
        {

            if (item.Selected)
            {

                sc.Add(item.Text);

            }

        }

        foreach (ListItem item in ListBox2.Items)
        {

            if (item.Selected)
            {

                sc2.Add(item.Text);

            }

        }
                InsertRecords(sc , sc2);


    }
}

1 个答案:

答案 0 :(得分:2)

你应该使用嵌套的foreach。

foreach (string item in sc)
{
  foreach (string item in sc2)
  {
    insert sc and sc2
  }
}