-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 に答える