关于使用C#对access数据库表中记录按某字段升序删除的问题!

2025-03-01 20:08:38
推荐回答(1个)
回答1:

access是轻量级数据库,恐怕一条语句无法实现.
方法一:
如果你就做一次,那么直接去access中执行语句
select top 300 * from [wordcount1] order by [Word] asc
在查询的结果表中直接全选删除.这种方法最简单,但不适合重用.
方法二:
需要分步处理了.这个是查询方法.
public DataTable Select(string sql)//通用查询方法
{
DataSet ds = new DataSet();
System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection(strConn);
System.Data.OleDb.OleDbDataAdapter _adapter;
try
{
if (connection.State != System.Data.ConnectionState.Open)
connection.Open();
_adapter = new System.Data.OleDb.OleDbDataAdapter(sql, connection);
_adapter.Fill(ds);
}
finally
{
connection.Dispose();
connection.Close();
}
return ds.Tables[0];
}

调用:
DataTable dt = Select("
select top 300 * from [wordcount1] order by [Word] asc
");

然后循环删除 for (int i=0;istring del = "delete from [wordcount1] where id=" + dt.Rows[i]["Id"].ToString();