【发布时间】:2016-05-29 16:59:36
【问题描述】:
所以我有这个代码。当我在ListView 中选择一行时,我想从数据库中删除。我的想法是从具有选定 ID 的表中删除。
我尝试使用listViewScenarist.SelectedItems[0].SubItems[0],但代码无法识别SubItems[0]。我能做什么?
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 idScenarist=@idScenarist", connection);
int x = Convert.ToInt32(listScenarist.SelectedIndex);
cmd.Parameters.AddWithValue("@idScenarist", listViewScenarist.SeletedItems[x].SubItems[0]);
cmd.ExecuteNonQuery();
connection.Close();
}
填充:
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] 吗??
-
@LeonardH 我不知道你如何填充你的列表,但
SelectedItem(s)应该是你的项目类型,所以:(listViewScenarist.SeletedItems[x] as UserScenarist).idScenarist