當前位置:首頁 » 操作系統 » 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、打開文件夾,選擇左上角「文件」選項卡,點擊「更改文件夾和搜索選項」

熱點內容
養生密碼的產品怎麼樣 發布:2025-03-26 04:10:26 瀏覽:382
php中斷for 發布:2025-03-26 04:04:07 瀏覽:876
怎麼輸入管理員密碼 發布:2025-03-26 04:01:30 瀏覽:670
網路雲存儲伺服器 發布:2025-03-26 04:01:22 瀏覽:639
java獲取數據 發布:2025-03-26 03:59:46 瀏覽:409
用什麼軟體練習配置路由 發布:2025-03-26 03:55:27 瀏覽:738
安卓怎麼彈出載入框 發布:2025-03-26 03:49:36 瀏覽:976
pdf反編譯技巧 發布:2025-03-26 03:49:35 瀏覽:129
手機忘記密碼號什麼打 發布:2025-03-26 03:09:38 瀏覽:501
存儲器要求 發布:2025-03-26 03:08:27 瀏覽:439