-2

我想调用一个方法,该方法为列表视图中的每个选定项目接收一个字符串。

foreach (string item in lvwPoliciesAvailableForHoldBack.SelectedItems)
                {
                    Database.HoldBackPolicy(item);
                }

我遇到了这个错误:

无法将“System.Windows.Forms.ListViewItem”类型的对象转换为“System.String”类型。

这是“HoldBackPolicy”方法:

public int HoldBackPolicy(string PolicyNumber)
        {
            int result = 0;

            SqlCommand cmd = new SqlCommand("spHoldBackPolicy", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@PolicyNumber", PolicyNumber);

            var returnParameter = cmd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int);
            returnParameter.Direction = ParameterDirection.ReturnValue;

            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
                result = Convert.ToInt32(returnParameter.Value);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message.ToString());
            }
            finally
            {
                conn.Close();
            }
            return result;
        }
4

1 回答 1

4

您不能将 ListViewItem 转换为字符串。错误说明了一切。

这一行:

foreach (string item in lvwPoliciesAvailableForHoldBack.SelectedItems)

是错的。一定是这样的:

foreach (ListViewItem item in lvwPoliciesAvailableForHoldBack.SelectedItems)

而这个函数调用,一定是这样的:

Database.HoldBackPolicy(item.Text);
于 2012-08-01T23:35:42.760 回答