Итак, у меня есть этот код. Я хочу удалить из базы данных, когда я выбираю строку в ListView
. Моя идея - удалить из таблицы с выбранным ID. Я пробовал с listViewScenarist.SelectedItems[0].SubItems[0]
, но код не распознает SubItems[0]
. Что я могу сделать?ListView C# WPF Binding
public class UserScenarist : Scenarist
{
public int idScenarist { get; set; }
public string numeScenarist { get; set; }
}
public void deleteScenarist(System.Windows.Controls.ListView listScenarist)
{
connection.Open();
SqlCommand cmd = new SqlCommand("DELETE FROM dbo.Scenarist WHERE [email protected]", connection);
int x = Convert.ToInt32(listScenarist.SelectedIndex);
cmd.Parameters.AddWithValue("@idScenarist", listViewScenarist.SeletedItems[x].SubItems[0]);
cmd.ExecuteNonQuery();
connection.Close();
}
Populate:
public void loadScenarist(System.Windows.Controls.ListView listScenarist)
{
connection.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.Scenarist ORDER BY idScenarist ASC", connection);
try
{
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
listScenarist.Items.Clear();
foreach (DataRow dr in dt.Rows)
{
List<UserScenarist> items = new List<UserScenarist>();
items.Add(new UserScenarist() { idScenarist = Int32.Parse(dr["idScenarist"].ToString()), numeScenarist = dr["scenarist"].ToString() });
//System.Windows.MessageBox.Show(dr["idScenarist"].ToString());
listScenarist.Items.Add(items);
}
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.Message);
}
connection.Close();
}
Вы пробовали listViewScenarist.Items [x] ?? – apomene
@LeonardH Я не знаю, как вы заполняете список, но 'SelectedItem (s)' должен быть у вас типа item так: '(listViewScenarist.SeletedItems [x] как UserScenarist) .idScenarist' – dkozl