私はC#WinFormsプログラムを使用してSQLサーバーにアクセスし、そこからデータを照会しています。私は2つのメインクラスを持っています:Users
は、アプリケーションにログインできるユーザーのデータ型を含み、Products
にはクエリ可能な製品のデータ型が再び含まれています。また、私は、SQL Serverにアクセスするためのメソッドを保持するクラスがあります。私はListView lsv_MangageUsers
にロードするリストにSQLデータベースからユーザーをクエリする関数を作成しました。新しいユーザーの追加と削除方法を作成することができましたが、ユーザー変更メソッドの作成を開始したときに問題が発生しました。 Visual Studioのコメント:C# 'System.Windows.Forms.ListViewItem'を 'my app.Users'クラスに変換できません
"タイプ 'System.Windows.Forms.ListViewItem'を 'my app.Users'クラスに変換できません。
Users
クラスのメソッドを変更してメソッドを変更し、新しいフォームコントロールにロードして、ユーザーが変更できるようにしました。メソッドと関数を間違った順序で使用した場合、私はC#でまだ新しいです。どんな助けもありがとう。
ボタンのコード:
private void btn_ModifyUser_Click(object sender, EventArgs e)
{
if (lsv_ManageUsers.FocusedItem.Index != -1)
{
UserNew userwindow = new UserNew((Users)lsv_ManageUsers.SelectedItems[0]);
if (userwindow.ShowDialog() == DialogResult.OK)
{
LsvUsersRefresh();
toolStripStatusLabel1.Text = "User successfully modified!";
}
}
}
すべては 'lsv_ManageUsers'を中心にしていますので、その変数が初期化されているコードを含めてください。同時に、不必要なコードを減らしてください。 'class UserNew'のほとんどの内容は質問には関係ありません。それを短くしておくことで、私たち全員が実際の問題に集中することができます。 –
データの保存に関連するコードの残りの部分を削除しましたが、例外とは関係ありません。例外はここで '(Users)lsv_ManageUsers.SelectedItems [0]'をスローします。 'ListViewItem'は' Users'クラスに変換できません。そのユーザオブジェクトが、 'ListView'を塗りつぶすときにアイテムの' Tag'プロパティに置く必要がある場合。 '(Users)(lsv_ManageUsers.SelectedItems [0] .Tag)' –
'DataGridView'を使うと' DataSource'を 'List'に設定するだけで、 DataBoundItem'は行の後ろにあるデータバインドされた項目です。 –