【问题标题】:Insert Multiple Rows from DropDown to SQL从下拉菜单中插入多行到 SQL
【发布时间】:2014-02-05 11:47:35
【问题描述】:

我有 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();
}

【问题讨论】:

  • 下拉列表是指组合框,对吧?

标签: c# sql foreach sql-insert


【解决方案1】:

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

改变你的

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));

在 AllOptions 上保持 foreach 循环

改变

college.Value = str;

college.value = str.StringDrop;

使用 str.StringSome 作为其他参数

【讨论】:

  • 谢谢@Schuere - 你是正确的 STR 确实包含选定的值,我怎样才能同时输入另一个选定值的字符串数组?
【解决方案2】:

遍历您的下拉列表,如果 list1 是该列表:

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

但是,通过这样做,dropdown listbox 中的值没有任何意义(因此选择失去了它的使用点),您可以简单地将它们存储在一个简单的 List &lt;string&gt;

【讨论】:

    【解决方案3】:

    只需为每个组合框添加这样的 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 2020-03-27
      相关资源
      最近更新 更多