Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向datagridview和数据库表添加列表项_C#_Datagridview_Listbox - Fatal编程技术网

C# 向datagridview和数据库表添加列表项

C# 向datagridview和数据库表添加列表项,c#,datagridview,listbox,C#,Datagridview,Listbox,我有一个带有值列表的列表框(列表框名称=RoleName)。根据列表框中的选择,这些值将添加到RoleName表中。但是,当我尝试添加时,它会添加正确数量的行,但始终是相同的值(第一个值)。标签1.Text在顶部显示正确的用户ID。我的循环有问题吗 private void button1_Click(object sender, EventArgs e) { SqlCommand cmdAdd = new SqlCommand("insert into

我有一个带有值列表的列表框(列表框名称=RoleName)。根据列表框中的选择,这些值将添加到RoleName表中。但是,当我尝试添加时,它会添加正确数量的行,但始终是相同的值(第一个值)。标签1.Text在顶部显示正确的用户ID。我的循环有问题吗

private void button1_Click(object sender, EventArgs e)
        {
            SqlCommand cmdAdd = new SqlCommand("insert into Josh_REL_Table (UserID, RoleName) Values (@UserID , @RoleName)", con);
            DataGridViewRow row = new DataGridViewRow();
            con.Open();
            cmdAdd.Parameters.Add("@UserID", SqlDbType.VarChar);
            cmdAdd.Parameters.Add("@RoleName", SqlDbType.VarChar);

            foreach (var i in RoleName.SelectedIndices)
            {
                cmdAdd.Parameters["@UserID"].Value = label1.Text;
                cmdAdd.Parameters["@RoleName"].Value = RoleName.SelectedItem;
                cmdAdd.ExecuteNonQuery();
            }
}

您正在保存SelectedItem,而不是循环中的每个项目。查看下面的评论

foreach (var currentItem in RoleName.SelectedItems)
            {
                cmdAdd.Parameters["@UserID"].Value = label1.Text;
                cmdAdd.Parameters["@RoleName"].Value = currentItem // Or i in your code. 
//RoleName.SelectedItem; selected item is always same.
                cmdAdd.ExecuteNonQuery();
            }

非常感谢。我只是从RoleName.SelectedIndices改成了RoleName.SelectedItems,因为我错过了这一点,所以我把代码也改成了SelectedItems。