从DropDown插入多行到SQL

时间:2014-02-05 11:47:35

标签: c# sql foreach sql-insert

我有6个具有以下值的DropDownList;

ABC,DEF,GHI,JKL,MNO,PQR

我想通过从每个下拉列表中获取值,将ddl1,ddl2,ddl3,ddl4,ddl5和ddl6中的值插入到我的SQL表中。

我目前有以下内容,但需要调整它以插入每个下拉列表中的值而不是相同的值:

SqlConnection sqlCon = new SqlConnection("Data Source=***; User ID=***; MultipleActiveResultSets=True; Password=***; Initial Catalog=PMRDA;");

try
{
    sqlCon.Open();

    foreach (string str in AllOptions)
    {
        SqlCommand cmd = new SqlCommand("INSERT INTO lboard(eventType, date, college) values (@eventType, GETDATE(), @college)", sqlCon);

        SqlParameter eventType = cmd.Parameters.Add("@eventType", SqlDbType.VarChar);
        SqlParameter college = cmd.Parameters.Add("@college", SqlDbType.Char);

        eventType.Value = ddlEventType.SelectedItem.Value;
        college.Value = ddl5.SelectedItem.Value;

        cmd.ExecuteNonQuery();
    }

    LabelStatus.Text = "Submitted Succesfully";
}
catch(Exception ex)
{
    LabelStatus.Text = ex.Message;
}
finally
{
    sqlCon.Close();
}

3 个答案:

答案 0 :(得分:2)

在你的foreach循环中,你有一个allOptions字符串列表 (我假设这是包含ddl中所有选定值的列表)

改变你的

college.Value = ddl5.SelectedItem.Value;

college.Value = str;

如果你有一个永远不会使用的对象的foreach循环,那将是非常令人惊讶的......

评论后编辑;

创建一个包含2个字符串属性的类 StringSome =您的字符串,stringDrop =下拉选择值

public class MyClass
{
 public string StringSome{get;set;}
 public stirng StringDrop{get;set;}
 public MyClass()
 {//default constructor}
 public MyClass(string a, string b)
 {
  StringSome = a; 
  StringDrop = b;}
 }

更改

Alloptions = new List<string>();

Alloptions = new List<MyClass>();

根据数据

填写课程

我假设你想要string1到ddl1和string2到ddl2等......

例如

AllOptions.Add(new MyClass(yourcontrol1.Text, ddl1.SelectedValue.Value));

将foreach循环保留在AllOptions上

更改

college.Value = str;

college.value = str.StringDrop;

将str.StringSome用于其他参数

答案 1 :(得分:0)

如果list1是该列表,请在您的下拉列表中进行迭代:

  foreach (string str in list1)
{    
....
college.Value = str;
....
}

然而,通过这样做,dropdown listbox中的值没有意义(因此选择失去了它的使用点),你可以简单地将它们存储在一个简单的List <string>

答案 2 :(得分:0)

只需为每个组合框添加一个这样的for语句。

string text_to_add;
for (int i=0; i< comboBox.Items.Count; i++)
{
    text_to_add=comboBox.Items[i].ToString();
    //Perform the db insert using the text_to_add string
}