007_01SQLiteTransaction

 

 1 package com.example.sqlitetransaction;
 2 
 3 import android.content.Context;
 4 import android.database.sqlite.SQLiteDatabase;
 5 import android.database.sqlite.SQLiteDatabase.CursorFactory;
 6 import android.database.sqlite.SQLiteOpenHelper;
 7 import android.util.Log;
 8 
 9 public class MydbOpenHelper extends SQLiteOpenHelper {
10 
11     //
12     public MydbOpenHelper(Context context, String name, CursorFactory factory,
13             int version) {
14         super(context, name, factory, version);
15         // TODO Auto-generated constructor stub
16     }
17 
18     
19     //oncreate函数当数据库第一次被创建的时候会调用
20     @Override
21     public void onCreate(SQLiteDatabase db) {
22         // TODO Auto-generated method stub
23         String createtable = "create table user(id int, name varchar(20), money int);";
24         db.execSQL(createtable);
25         System.out.println("MydbOpenHelper.onCreate()");
26     }
27 
28     
29     //onUpgrade当你的数据库版本升级的时候会调用
30     @Override
31     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
32         // TODO Auto-generated method stub
33         //更改数据库的表结构
34         //  user(id,name,password)  user(id,name,password,gender)
35         //
36         //  db.execSQL(""); 
37         Log.i("MydbOpenHelper", "oldervserion"+oldVersion+"newversion"+newVersion);
38         System.out.println("MydbOpenHelper.onUpgrade()");
39 
40     }
41 
42 }
MydbOpenHelper.java

 

 1 package com.example.sqlitetransaction;
 2 
 3 import android.app.Activity;
 4 import android.content.ContentValues;
 5 import android.database.Cursor;
 6 import android.database.sqlite.SQLiteDatabase;
 7 import android.os.Bundle;
 8 import android.util.Log;
 9 import android.view.Menu;
10 import android.view.MenuItem;
11 
12 public class MainActivity extends Activity {
13     SQLiteDatabase db;
14 
15     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19         
20         MydbOpenHelper helper = new MydbOpenHelper(this, "count.db", null,1);
21         db = helper.getReadableDatabase();
22         
23         //insert();
24         try {
25             update();        
26             query();
27         } 
28         finally{
29             db.close();            
30         }
31         
32         }
33     private void update(){
34         db.beginTransaction();
35         try{
36             ContentValues cv = new ContentValues();
37             cv.put("money", 7000);
38             db.update("user", cv, "id=1", null);
39             
40             //int b = 1/0;
41             
42             cv.clear();
43             cv.put("money", 11000);
44             db.update("user", cv, "id=2", null);
45             db.setTransactionSuccessful();
46         }catch(Exception e){
47             
48         }finally{
49             db.endTransaction();
50         }
51 
52     }
53     private void query(){
54         Cursor c = db.rawQuery("select * from user", null);
55         
56         while(c.moveToNext()){
57             int id = c.getInt(c.getColumnIndex("id"));
58             String username = c.getString(c.getColumnIndex("name"));
59             String money = c.getString(c.getColumnIndex("money"));
60             Log.i("sqlitetransaction", id+","+username+","+money);
61         }
62     }
63     private void insert(){
64         ContentValues cv = new ContentValues();
65         cv.put("id", 1);
66         cv.put("name", "user1");
67         cv.put("money", 8000);
68         db.insert("user", null, cv);
69         cv.clear();
70         
71         cv.put("id", 2);
72         cv.put("name", "user2");
73         cv.put("money", 10000);
74         db.insert("user", null, cv);
75         cv.clear();
76     }
77 }
MainActivity.java

 

转载于:https://www.cnblogs.com/woodrow2015/p/4515577.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用C#和SQLite实现批量导入数据的功能。以下是一个简单的示例代码: ```csharp using System; using System.Data; using System.Data.SQLite; namespace SQLiteBulkInsert { class Program { static void Main(string[] args) { // 数据源文件路径 string dbFilePath = "your_database_file_path.db"; // 数据表名称 string tableName = "your_table_name"; // 要导入的数据集合 DataTable data = GetYourData(); // 创建连接对象 using (SQLiteConnection connection = new SQLiteConnection($"Data Source={dbFilePath};Version=3;")) { connection.Open(); // 创建事务 using (SQLiteTransaction transaction = connection.BeginTransaction()) { // 创建数据适配器 using (SQLiteDataAdapter adapter = new SQLiteDataAdapter()) { // 设置数据适配器的插入命令 adapter.InsertCommand = new SQLiteCommand($"INSERT INTO {tableName} VALUES (@Column1, @Column2)", connection, transaction); adapter.InsertCommand.Parameters.Add("@Column1", DbType.String); adapter.InsertCommand.Parameters.Add("@Column2", DbType.Int32); // 批量插入数据 foreach (DataRow row in data.Rows) { adapter.InsertCommand.Parameters["@Column1"].Value = row["Column1"]; adapter.InsertCommand.Parameters["@Column2"].Value = row["Column2"]; adapter.InsertCommand.ExecuteNonQuery(); } } // 提交事务 transaction.Commit(); } connection.Close(); } } static DataTable GetYourData() { // 获取要导入的数据集合,可以根据自己的需求进行实现 DataTable data = new DataTable(); data.Columns.Add("Column1", typeof(string)); data.Columns.Add("Column2", typeof(int)); // 添加数据 data.Rows.Add("Value1", 1); data.Rows.Add("Value2", 2); // ... return data; } } } ``` 请注意替换代码中的 `your_database_file_path.db` 和 `your_table_name` 分别为你的数据库文件路径和表名。你还需要根据自己的需求实现 `GetYourData()` 方法来获取要导入的数据集合。 以上代码通过使用 `SQLiteDataAdapter` 和事务来实现了批量插入数据到SQLite数据库的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值