2014-02-05 58 views
0

我有6 DropDownList具有以下值;从DropDown插入多行到SQL

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(); 
} 
+0

按下拉列表你的意思是一个组合框的权利? –

回答

2
在你的foreach循环

你有一个allOptions字符串列表 (我“会认为这是从DDL的所有selectedValues)

列表更改

college.Value = ddl5.SelectedItem.Value; 

college.Value = str; 

否则这将是相当惊人的,你有你从来没有使用对象foreach循环...评论后

编辑;

创建包含2个属性的类 StringSome =你的字符串有,stringDrop =下拉的SelectedValue

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 1和字符串到DDL2等等

例如

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

继续AllOptions

变化foreach循环

college.Value = str; 

college.value = str.StringDrop; 

使用str.StringSome您的其他参数

+0

谢谢@Schuere - 你是正确的STR包含选定的值,我怎样才能同时输入另一个选定值的字符串数组? – dawsonz

+0

编辑所以新的情况可能可用:-) – Schuere

+0

非常好,谢谢。 – dawsonz

0

迭代通过你的下拉列表中,如果list1是列表:

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

但是通过这样它具有在dropdown listbox值没有意义(因此选择会丢失它的使用点),您可以简单地将它们存储在一个简单的List <string>

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 
}