2009-05-19 157 views
1

如何更新包含具有多行的单列的ms访问表。该表在listview上显示,并且每当我从listview删除一行时,该行应从表中删除。我怎样才能做到这一点。使用C#。我创建了一个oledb连接,并从列表视图中删除了一行选中的项目。代码如下:如何更新ms访问表

if (listView1.CheckedItems.Count > 0) 
{ 
    foreach (ListViewItem lvi in listView1.CheckedItems) 
     listView1.Items.Remove(lvi); 
} 

现在我该如何更新ms acesss表?

+1

你不需要的,如果条件..的foreach枚举只有在有里面的东西收集 – nawfal 2013-01-19 20:27:01

回答

1

只需创建一个OleDB命令,为该行执行sql DELETE查询。编号:
该表是否只包含一列?那列是你在列表视图中显示的内容?然后你可以做这样的事情:

using (OleDBCommand deleteCommand = connection.CreateCommand()) 
{ 
    deleteCommand.CommandText = "DELETE FROM tablename WHERE [email protected]"; 
    deleteCommand.Parameters.AddWithValue("@rowvalue", YourRowValue); 
    deleteCommand.ExecuteNonQuery(); 
} 

此代码片段假定您有一个打开OleDBConnection命名连接。只需将tablename替换为表名,colname替换为列的名称,将YourRowValue替换为要删除的值,然后您应该可以使用某些方法。

要删除所有选中的商品,则应该在方法封装上面的代码,说DeleteItem(string name)并使用如下:

List<ListViewItem> itemsToBeDeleted = new List<ListViewItem>(listView1.CheckedItems); 
foreach (ListViewItem itemToDelete in itemsToBeDeleted) 
{ 
    DeleteItem(itemToDelete.Text); 
    listView1.Items.Remove(itemToDelete); 
} 
+0

thnax但当我从列表视图中删除一行检查项目然后.....如何更新 – ankush 2009-05-19 08:56:05