当前位置:首页 » 操作系统 » listview删除数据库数据

listview删除数据库数据

发布时间: 2025-03-25 18:09:31

Ⅰ vb 删除access的几条记录,来帮忙看看

strsql = "Delete * From stuInfo where 编号=" & ListView2.ListItems(i).SubItems(3) & "
conn.execute strSQL

执行完后,再把ListView中的项给删掉。
类似这样。。。

Ⅱ 解决一个android中的listview和cursor的问题

Android 连接数据库
Android采用关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作上有很广泛的,WM采用的也是SQLite3

关于过于、原理方面的东西在这篇文章里不会提到,但是如果你想能够快速的学会操作SQLite3,那这就是你要找的文章!

首先,我们看一下api,所有数据库相关的接口、类都在.database和android.database.sqlite两个包下,虽然只有两个包,但是如果你英文不好或是太懒的话也要迷茫一段时间,其实,我们真正用的到的没有几个!

1、SQLiteOpenHelper (android.database.sqlite.SQLiteOpenHelper)

这是一个抽象类,关于抽象类我们都知道,如果要使用它,一定是继承它!

这个类的方法很少,有一个构造方法

SQLiteOpenHelper(android.content.Context context, java.lang.String name,android.database.sqlite.SQLiteDatabase.CursorFactory factory, int version);

参数不做过多的解释,CursorFactory一般直接传null就可以

public void onCreate(SQLiteDatabase db)

此方法在创建数据库是被调用,所以,应该把创建表的操作放到这个方法里面,一会儿在后面我们会再详细的说如何创建表

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

从方法名上我们就能知道这个方法是执行更新的,没错,当version改变是系统会调用这个方法,所以在这个方法里应该执行删除现有表,然后手动调用onCreate的操作

SQLiteDatabase getReadableDatabase()

可读的SQLiteDatabase对象

SQLiteDatabase getWritableDatabase()

获取可写的SQLiteDatabase对象

2、SQLiteDatabase(android.database.sqlite.SQLiteDatabase)

关于操作数据库的工作(增、删、查、改)都在这个类里

execSQL(sql)

执行SQL语句,用这个方法+SQL语句可以非常方便的执行增、删、查、改

除此之外,Android还提供了功过方法实现增、删、查、改

long insert(TABLE_NAME, null, contentValues)添加记录

int delete(TABLE_NAME, where, whereValue)删除记录

int update(TABLE_NAME, contentValues, where, whereValue) 更新记录

Cursor query(TABLE_NAME, null, null, null, null, null, null) 查询记录

除此之外,还有很多方法,如:beginTransaction()开始事务、endTransaction()结束事务...有兴趣的可以自己看api,这里就不多赘述了

3、Cursor(android.database.Cursor)

游标(接口),这个很熟悉了吧,Cursor里的方法非常多,常用的有:

boolean moveToPosition(position)将指针移动到某记录

getColumnIndex(Contacts.People.NAME)按列名获取id

int getCount()获取记录总数

boolean requery()重新查询

boolean isAfterLast()指针是否在末尾

boolean isBeforeFirst()时候是开始位置

boolean isFirst()是否是第一条记录

boolean isLast()是否是最后一条记录

boolean moveToFirst()、 boolean moveToLast()、 boolean moveToNext()同moveToPosition(position)

4、SimpleCursorAdapter(android.widget.SimpleCursorAdapter)

也许你会奇怪了,之前我还说过关于数据库的操作都在database和database.sqlite包下,为什么把一个Adapter放到这里,如果你用过Android的SQLite3,你一定会知道

,这是因为我们对数据库的操作会经常跟列表联系起来

经常有朋友会在这出错,但其实也很简单

SimpleCursorAdapter adapter = new SimpleCursorAdapter(

this,

R.layout.list,

myCursor,

new String[] ,

new int[]);

my.setAdapter(adapter);

一共5个参数,具体如下:

参数1:Content

参数2:布局

参数3:Cursor游标对象

参数4:显示的字段,传入String[]

参数5:显示字段使用的组件,传入int[],该数组中是TextView组件的id

到这里,关于数据库的操作就结束了,但是到目前为止我只做了翻译的工作,有些同学可能还是没有掌握,放心,下面我们一起顺着正常开发的思路理清一下头绪!

前面的只是帮没做过的朋友做下普及,下面才是你真正需要的!

一、写一个类继承SQLiteOpenHelpe

public class DatabaseHelper extends SQLiteOpenHelper

构造方法:

DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

在onCreate方法里写建表的操作

public void onCreate(SQLiteDatabase db) {

String sql = "CREATE TABLE tb_test (_id INTEGER DEFAULT '1' NOT NULL PRIMARY KEY AUTOINCREMENT,class_jb TEXT NOT NULL,class_ysbj TEXT NOT NULL,title TEXT NOT NULL,content_ysbj TEXT NOT NULL)";

db.execSQL(sql);//需要异常捕获

}

在onUpgrade方法里删除现有表,然后手动调用onCtreate创建表

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

String sql = "drop table "+tbname;

db.execSQL(sql);

onCreate(db);

}

对表增、删、查、改的方法,这里用的是SQLiteOpenHelper提供的方法,也可以用sql语句实现,都是一样的

关于获取可读/可写SQLiteDatabase,我不说大家也应该会想到,只有查找才会用到可读的SQLiteDatabase

/**

* 添加数据

*/

public long insert(String tname, int tage, String ttel){

SQLiteDatabase db= getWritableDatabase();//获取可写SQLiteDatabase对象

//ContentValues类似map,存入的是键值对

ContentValues contentValues = new ContentValues();

contentValues.put("tname", tname);

contentValues.put("tage", tage);

contentValues.put("ttel", ttel);

return db.insert(tbname, null, contentValues);

}

/**

* 删除记录

* @param _id

*/

public void delete(String _id){

SQLiteDatabase db= getWritableDatabase();

db.delete(tbname,

"_id=?",

new String[]);

}

/**

* 更新记录的,跟插入的很像

*/

public void update(String _id,String tname, int tage, String ttel){

SQLiteDatabase db= getWritableDatabase();

ContentValues contentValues = new ContentValues();

contentValues.put("tname", tname);

contentValues.put("tage", tage);

contentValues.put("ttel", ttel);

db.update(tbname, contentValues,

"_id=?",

new String[]);

}

/**

* 查询所有数据

* @return Cursor

*/

public Cursor select(){

SQLiteDatabase db = getReadableDatabase();

return db.query(

tbname,

new String[],

null,

null, null, null, "_id desc");

}

关于db.query方法的参数,有很多,为了防止大家弄乱,我简单说一下

参数1:表名

参数2:返回数据包含的列信息,String数组里放的都是列名

参数3:相当于sql里的where,sql里where后写的内容放到这就行了,例如:tage>?

参数4:如果你在参数3里写了?(知道我为什么写tage>?了吧),那个这里就是代替?的值 接上例:new String[]

参数5:分组,不解释了,不想分组就传null

参数6:having,想不起来的看看SQL

参数7:orderBy排序

到这里,你已经完成了最多的第一步!我们来看看都用到了那些类:

SQLiteOpenHelper我们继承使用的

SQLiteDatabase增删查改都离不开它,即使你直接用sql语句,也要用到execSQL(sql)

二、这里无非是对DatabaseHelper类定义方法的调用,没什么可说的,不过我还是对查询再唠叨几句吧

Android查询出来的结果一Cursor形式返回

cursor = sqLiteHelper.select();//是不是很简单?

查询出来的cursor一般会显示在listView中,这就要用到刚才提到的SimpleCursorAdapter

SimpleCursorAdapter adapter = new SimpleCursorAdapter(

this,

R.layout.list_row,

cursor,

new String[],

new int[]

);

里面带有实例。自己好好学习吧!

Ⅲ C# asp.net WebForm 的三层架构配合ListView实现增删改查源码

C# asp.net WebForm 的三层架构配合ListView实现增删改查源码:
1、用Access新建一个表MResume,人事管理表:
ID 姓名 性别 出生日期 工作年限 证件类型 证件号 居住地 Email 手机号码 家庭电话 图片 自我评价
2、控件的使用:bindingNavigator(实现分页功能), dataGridView(显示数据)
在C# WinForm 中有这一个app.config的文件,这个文件的作用可以当作web程序中的webconfig文件。
这里面可以记录数据库连接字符串
Access下数据库连接函数:
public static OleDbConnection GetConnection()
{
OleDbConnection conn = null;
string strconnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "database\\chinabase.mdb;Persist Security Info=True";
try
{
conn = new OleDbConnection(strconnectionString);
}
catch (Exception ex)
{
throw ex;
}
return conn;
}
3、把数据库中的数据读到dataGridView让这个控件来显示数据:
private void ResumeTest_Load(object sender, EventArgs e)
{
//手动代码把数据库中的数据显示出来
OleDbConnection conn = GetConnection();
string sqlText = "select 姓名,性别,出生日期,工作年限,证件类型,证件号,居住地,Email,手机号码,家庭电话,自我评价 from MResume order by id asc";
OleDbCommand cmd = new OleDbCommand(sqlText, conn);
try
{
conn.Open();
//int i = cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
OleDbDataAdapter oda = new OleDbDataAdapter(sqlText, conn);
DataSet ds = new DataSet();
// oda.Fill(dt);
// dataGridView1.DataSource = dt;
oda.Fill(ds, "ds");

dtInfo.Clear();

//dtInfo = null;
dtInfo = ds.Tables[0];
InitDataSet(dtInfo); //初始化数据
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
//设置GridView样式
// SetUpDataGridView();
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //使用户能够选择行
this.dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; //双击不能修改了,这是通过编程的方式来修改单元格内容的
this.ComboxSelect.Items.Add("请选择类别");
this.ComboxSelect.Items.Add("姓名");
this.ComboxSelect.Items.Add("性别");
this.ComboxSelect.SelectedText = "请选择类别";
}
更新代码如下:
private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
{
dataGridView1_DoubleClick(sender, e);
//类似于dataGridView的更新操作,也就是双击操作
}
private void dataGridView1_CellMouseDown(object
e)
{
//判断如果点击的是鼠标右键
if (e.Button == MouseButtons.Right)
{
//判断鼠标点击在数据行上
if (e.RowIndex >= 0)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[e.RowIndex].Selected = true;
dataGridView1.CurrentCell
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
}
}
}
删除代码如下:
public bool deletDataGridViewOneLine(object sender, EventArgs e)
{
bool result = false;
Int32 selectedRowCount
dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
int selectedRow = dataGridView1.SelectedRows[0].Index; //获得选中的某行
string MName = dataGridView1.Rows[selectedRow].Cells[0].Value.ToString().Trim();
// MessageBox.Show(MName.ToString());
DialogResult dr = MessageBox.Show("确定要删除这条记录吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
if (MName != null && MName != "")
{
OleDbConnection conn = GetConnection();

string sqlText = "delete from MResume where 姓名=@MName";

OleDbCommand cmd = new OleDbCommand(sqlText, conn);

cmd.Parameters.AddWithValue("@MName", MName);
try
{
conn.Open();
int i = cmd.ExecuteNonQuery();
result = true;
}
catch (Exception ex)
{
MessageBox.Show("发生异常:" + ex.ToString(), "提示");
}
查询代码如下:

private void btnSelect_Click(object sender, EventArgs e)
{
//首先进行模糊查询
string strComboxSelect = ComboxSelect.Text.Trim();
string strSearch = txtSearch.Text.Trim();
if(strComboxSelect.Equals("请选择类别"))
{
MessageBox.Show("请选择类别!","提示");
return;
}
if (strSearch == "" || strSearch == null)
{
MessageBox.Show("请输入查询内容!", "提示");
return;
}
//手动代码把数据库中的数据显示出来
OleDbConnection conn = GetConnection();
string sqlText = "select 姓名,性别,出生日期,工作年限,证件类型,证件号,居住地,Email,手机号码,家庭电话,自我评价 from MResume where " + strComboxSelect + " like '%"+@strSearch+"%'";
OleDbCommand cmd = new OleDbCommand(sqlText, conn);
cmd.Parameters.AddWithValue("@strSearch", strSearch);
try
{
conn.Open();
//int i = cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
OleDbDataAdapter oda = new OleDbDataAdapter(sqlText, conn);
oda.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}

Ⅳ 电脑图标变成白色的怎么办

请尝试以下方法:

方法一:

1、打开文件夹,选择左上角“文件”选项卡,点击“更改文件夹和搜索选项”

热点内容
pt上传慢 发布:2025-03-26 04:31:17 浏览:53
阿里云服务器哪个好用 发布:2025-03-26 04:26:09 浏览:242
windows编程技术 发布:2025-03-26 04:19:47 浏览:422
养生密码的产品怎么样 发布:2025-03-26 04:10:26 浏览:384
php中断for 发布:2025-03-26 04:04:07 浏览:878
怎么输入管理员密码 发布:2025-03-26 04:01:30 浏览:672
网络云存储服务器 发布:2025-03-26 04:01:22 浏览:641
java获取数据 发布:2025-03-26 03:59:46 浏览:411
用什么软件练习配置路由 发布:2025-03-26 03:55:27 浏览:740
安卓怎么弹出加载框 发布:2025-03-26 03:49:36 浏览:977