【问题标题】:Add combo box items to database将组合框项目添加到数据库
【发布时间】:2016-01-03 05:46:59
【问题描述】:

有点麻烦。我正在尝试将组合框项目添加到我的数据库中,但它不起作用。

代码:

string con = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Database;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
string connectionString = con;
using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand cmd = new SqlCommand("INSERT INTO JobRoles (Jobroles) VALUES (@jr)");
    cmd.CommandType = CommandType.Text;
    cmd.Connection = connection;
    cmd.Parameters.AddWithValue("@jr", comboBox1.Items.ToString());

    connection.Open();
    try
    {
        cmd.ExecuteNonQuery();
    }
    catch (Exception)
    {
        MessageBox.Show("Datebase error. Please contact software engineer.", "Error 303");
        return;
    }

我正在尝试在我的数据库中为每个组合框项创建一个新行,但所有组合框项都出现在一个单元格中,这将为我提供:

System.Windows.Forms.ComboBox+ObjectCollection

是否可以将组合框项目添加到我的数据库中,并且每个组合框项目都会在数据库中创建一个新行?谢谢!如有任何混淆,请见谅。

【问题讨论】:

    标签: c# sql-server database forms combobox


    【解决方案1】:

    您不应该在一个命令中添加所有项目。相反,您应该使用foreach 循环并一一添加oitems。

    string con = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Database;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
    string connectionString = con;
    
    foreach (var item in comboBox1.Items) //loop to go through the items one by one
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand cmd = new SqlCommand("INSERT INTO JobRoles (Jobroles) VALUES (@jr)");
            cmd.CommandType = CommandType.Text;
            cmd.Connection = connection;
            cmd.Parameters.AddWithValue("@jr", item.ToString()); //Add each item to database separately 
    
            connection.Open();
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                MessageBox.Show("Datebase error. Please contact software engineer.", "Error 303");
                return;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多