怎样获取 SQLite 数据库中 int 类型的数据?

如图片所示,在数据库里定义了 int id。读取时报错: int id=cursor.getInt(curs图片说明upload/201707/22/1500655576_804790图片说明et/upload/201707/22/1500655601_55图片说明3408.png).png)or.getColumnIndex("id"));

2个回答

数据库的类型如果不是主键都设置为char 可以选择用int来接收

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何从sqlite数据库中获取数据并显示在listview中?

在登录页面后,我想在listview中把Apple显示成A,Boy显示成B等等,直到F。但是在程序中当我完全登录后,只有登录表成功创建,主菜单还是没有创建。 我想在test database中创建主菜单,然后我想从主菜单表(mainmenu table)中获取数据再显示在listview中。 我使用了下面的代码: if(username.length()>0&&password.length()>0) { SQLiteAdapter db=new SQLiteAdapter(Main.this); db.openToWrite(); if(db.Login(username,password)) { System.out.println("goutham"); Intent intent=new Intent(getApplicationContext(),ExampleActivity.class); startActivity(intent); } SQLiteAdapter.java } public Cursor queueAll() { String[] columns = new String[] { KEY_ID, KEY_CONTENT }; Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null, null, null, null, null); return cursor; } private static class SQLiteHelper extends SQLiteOpenHelper { public SQLiteHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(SCRIPT_CREATE_DATABASE); db.execSQL(DATABASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } public long AddUser(String username, String password) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_USERNAME, username); initialValues.put(KEY_PASSWORD, password); return sqLiteDatabase.insert(DATABASE_TABLE, null, initialValues); } public boolean Login(String username, String password) { // TODO Auto-generated method stub Cursor mCursor = sqLiteDatabase.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE username=? AND password=?", new String[] { username, password }); if (mCursor != null) { if (mCursor.getCount() > 0) { return true; } } return false; } } ExampleActivity.java public class ExampleActivity extends Activity { private SQLiteAdapter mySQLiteAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView listContent = (ListView) findViewById(R.id.contentlist); /* * Create/Open a SQLite database and fill with dummy content and close * it */ mySQLiteAdapter = new SQLiteAdapter(this); mySQLiteAdapter.openToWrite(); // mySQLiteAdapter.deleteAll(); mySQLiteAdapter.insert("A for Apply"); mySQLiteAdapter.insert("B for Boy"); mySQLiteAdapter.insert("C for Cat"); mySQLiteAdapter.insert("D for Dog"); mySQLiteAdapter.insert("E for Egg"); mySQLiteAdapter.insert("F for Fish"); mySQLiteAdapter.close(); /* * Open the same SQLite database and read all it's content. */ mySQLiteAdapter = new SQLiteAdapter(this); mySQLiteAdapter.openToRead(); Cursor cursor = mySQLiteAdapter.queueAll(); startManagingCursor(cursor); String[] from = new String[] { SQLiteAdapter.KEY_CONTENT }; int[] to = new int[] { R.id.text }; SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor, from, to); listContent.setAdapter(cursorAdapter); mySQLiteAdapter.close(); } } 运行程序后,登录表在数据库中创建了,但是主菜单表没有创建。运行程序后,显示一个错误: sqlite returned code=1 no such a table in MY_TABLE

如何在Sqlite数据库中插入数据列表?

我创建了一个简单的数据库用来插入数据库列表,但是当我想把数据发送到数据库时,有下面的错误: 08-28 15:30:43.015: ERROR/Database(822): Failure 1 (no such column: Sharma) on 0x276e50 when preparing 'INSERT INTO friends Values(Sharma,SaiGeetha,18);"" 相关的代码: sampleDB = this.openOrCreateDatabase(SAMPLE_DB_NAME, MODE_PRIVATE, null); ArrayList<String>FirstName = new ArrayList<String>(); ArrayList<String>LastName = new ArrayList<String>(); ArrayList<Integer >Age = new ArrayList<Integer>(); FirstName.add("SaiGeetha"); FirstName.add("Vivek"); FirstName.add("Rahul"); LastName.add("Sharma"); LastName.add("Lilani"); LastName.add("Lami"); Age.add(18); Age.add(20); Age.add(23); sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " + SAMPLE_TABLE_NAME + " (LastName VARCHAR, FirstName VARCHAR," + " Age INT(3));"); for(int i=0;i<3;i++) { sampleDB.execSQL("INSERT INTO " + enter code here SAMPLE_TABLE_NAME + " Values("+LastName.get(i)+","+FirstName.get(i)+","+Age.get(i)+");"+"\"\""); } /*sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('Makam','Sai Geetha','India',25);"); sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('Chittur','Raman','India',25);"); sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('Solutions','Collabera','India',20);");*/ Cursor c = sampleDB.rawQuery("SELECT FirstName, Age FROM " + SAMPLE_TABLE_NAME + " where Age > 10 LIMIT 5", null); if (c != null ) { if (c.moveToFirst()) { do { String firstName = c.getString(c.getColumnIndex("FirstName")); int age = c.getInt(c.getColumnIndex("Age")); Log.e("---LIST FROM DATABASE--","---VALUE---"+firstName); Log.e("---LIST FROM DATABASE--","---VALUE---"+age ); }while (c.moveToNext()); } } sampleDB.close(); } catch (SQLiteException se ) { Log.e(getClass().getSimpleName(), "Could not create or Open the database"); } finally { if (sampleDB != null) sampleDB.execSQL("DELETE FROM " + SAMPLE_TABLE_NAME); sampleDB.close(); } } 哪里的问题呢?

使用android的SQLite数据库能存储多大数据

看到网上说SQLite数据库的大小是2TB,但是我觉得这个数据库不应该跟手机内存相联系吗? android上的SQLite数据库真的能容纳下2TB的数据吗???

AndroidSQLite数据库删除数据后ListView的更新

一款记账的软件,我的数据存储在SQLite中,当我长按item时,弹出对话框并确定删除该item,但是数据库中的删掉了,activity中的listView中该item还在,依理来说是因为我的adapter适配器加载的还是内存中的数据,但是小白还是没有想到好的解决办法,我试了使用广播,但是出现整个页面的item都被删了(数据库的其他还在)。其他的各种办法也都试了还是不行,无奈求助各位看到帖子的大神。讲解的好,我绝对给高分。先谢过各位了。 ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490187215_17835.png) 适配器代码在此: ``` public class CostListAdapter extends BaseAdapter { private List<CostBean> mList; private Context mContext; private LayoutInflater mInflater; public CostListAdapter(Context context, final List<CostBean> list){ mContext = context; mList = list; mInflater = LayoutInflater.from(context); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.zsf.accountbook.MY_BROADCAST"); context.registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { mList.clear(); mList = list; notifyDataSetChanged(); } },intentFilter); } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null){ holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.list_item,null); holder.mTvCostCategory = (TextView) convertView.findViewById(R.id.tv_category); holder.mTvCostDate = (TextView) convertView.findViewById(R.id.tv_date); holder.mTvCostMoney = (TextView) convertView.findViewById(R.id.tv_money); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } CostBean costBean = mList.get(position);// holder.mTvCostCategory.setText(costBean.costCategory); holder.mTvCostDate.setText(costBean.costDate); holder.mTvCostMoney.setText(costBean.costMoney); return convertView; } private static class ViewHolder{ public TextView mTvCostCategory; public TextView mTvCostDate; public TextView mTvCostMoney; } } ``` ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490187234_665074.png) ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490187852_566687.gif) 漏掉了数据库部分的代码: ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490188335_213349.png)

关于android APP开发中SQLITE数据库的问题

代码如下,首先请问我写的这段创建数据库的代码有没有错误?然后把这个类的文件放在哪里才对啊,目前程序一打开就是程序已经停止运行,APP的第一个ACTIVITY我设置的就是判断这个库中的某个表中有没有数据。我现在感觉就是程序打开,这个库还没有创建,是不存在的,所以运行不了。请大神指教下我。或者说怎么让APP一开始运行的第一步就是运行以下的代码来创建这个数据库。求指教。 //数据库创建类 package com.captain.dao; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class Db_create extends SQLiteOpenHelper { private static final int VERSION=1; //数据库版本号定义 private static final String DBN="manager.db"; public Db_create(Context context) { super(context,DBN,null,VERSION); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("create table tb_MoneyIn(_id integer primary key,user varchar(20)," + "money decimal,time varchar(10),type varchar(10),person varchar(100),mark varchar(200))"); db.execSQL("create table tb_MoneyOut(_id integer primary key,user varchar(20)," + "money decimal,time varchar(10),type varchar(10),person varchar(100),mark varchar(200))"); db.execSQL("create table tb_Users(_user integer primary key,pwd varchar(20))"); db.execSQL("create table tb_BianQian(_id integer primary key,user varchar(20)," + "content varchar(200))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }

Android如何将SQLite数据库中的数据导出为csv格式的文件

搜到了下边这个方法,但是我没实现功能,请各位指教。最好能有代码 public void ExportToCSV(Cursor c, String fileName) { int rowCount = 0; int colCount = 0; FileWriter fw; BufferedWriter bfw; File sdCardDir = Environment.getExternalStorageDirectory(); File saveFile = new File(sdCardDir, fileName); try { rowCount = c.getCount(); colCount = c.getColumnCount(); fw = new FileWriter(saveFile); bfw = new BufferedWriter(fw); if (rowCount > 0) { c.moveToFirst(); // 写入表头 for (int i = 0; i < colCount; i++) { if (i != colCount - 1) bfw.write(c.getColumnName(i) + ','); else bfw.write(c.getColumnName(i)); } // 写好表头后换行 bfw.newLine(); // 写入数据 for (int i = 0; i < rowCount; i++) { c.moveToPosition(i); // Toast.makeText(mContext, "正在导出第"+(i+1)+"条", // Toast.LENGTH_SHORT).show(); Log.v("导出数据", "正在导出第" + (i + 1) + "条"); for (int j = 0; j < colCount; j++) { if (j != colCount - 1) bfw.write(c.getString(j) + ','); else bfw.write(c.getString(j)); } // 写好每条记录后换行 bfw.newLine(); } } // 将缓存数据写入文件 bfw.flush(); // 释放缓存 bfw.close(); // Toast.makeText(mContext, "导出完毕!", Toast.LENGTH_SHORT).show(); Log.d("导出数据", "导出完毕!"); Toast.makeText(SecondActivity.this, "默认Toast样式", Toast.LENGTH_SHORT).show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { c.close(); } }

请问怎么用sql语句去修改sqlite中的数据字段的类型呢?

我现在想写一个方法,用来修改sqlite数据库中某个表中的某个列的类型,因为现在客户需要发生变化了,我需要在数据完整的情况下吧数据类型给改变了,也就是说我不能替换数据库,哪就只有用sql语句去修改类型了,跪求高手。。。

QT 怎么样才能把Sqlite数据库表导出成txt或者csv?

static bool creatConnection() { //creat a database QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","connection1"); db.setDatabaseName("my1.db"); db = QSqlDatabase::database("connection1"); //建立数据库连接 if(!db.open()){ QMessageBox::critical(0,"Cannot open database1", "Unable to establish a database connection.",QMessageBox::Cancel); return false; } QSqlQuery query1(db); query1.exec("create table shuju (Datetime QDateTime primary key,yanwu float,Temperature float,Humidity float)"); return true; } void SocketTCPServer::ReadDataFromSqlWriteToCSV(const QString &tableName,const QString &csvFileName)//将表导出为csv格式表格 { QSqlTableModel *exportModel = new QSqlTableModel(); exportModel->setTable(tableName); exportModel->select(); QStringList strList;//记录数据库中的一行报警数据 QString strString; const QString FILE_PATH(csvFileName); QFile csvFile(FILE_PATH); if (csvFile.open(QIODevice::ReadWrite)) { for (int i=0;i<exportModel->rowCount();i++) { for(int j=0;j<exportModel->columnCount();j++) { strList.insert(j,exportModel->data(exportModel->index(i,j)).toString());//把每一行的每一列数据读取到strList中 } strString = strList.join(", ")+"\n";//给两个列数据之前加“,”号,一行数据末尾加回车 strList.clear();//记录一行数据后清空,再记下一行数据 csvFile.write(strString.toUtf8());//使用方法:转换为Utf8格式后在windows下的excel打开是乱码,可先用notepad++打开并转码为unicode,再次用excel打开即可。 qDebug()<<strString.toUtf8(); } csvFile.close(); } } void SocketTCPServer::on_daochushuju_clicked() { ReadDataFromSqlWriteToCSV("shuju","shuju.csv"); }

c# winform excel导入sqlite数据库,求代码

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Linq; using System.Windows.Forms; using DevExpress.XtraEditors; using System.Data.OleDb; using TenderClear.Common; using TenderClear.BLL.TC01; namespace TenderClear.UI.Forms.TC01 { public partial class TC010103Form : DevExpress.XtraEditors.XtraForm { public TC010103Form() { InitializeComponent(); } DataTable dt = new DataTable(); DataGridView dgv=new DataGridView(); private void txtExcel_Click(object sender, EventArgs e) { //打开excel选择框 OpenFileDialog frm = new OpenFileDialog(); frm.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx"; if (frm.ShowDialog() == DialogResult.OK) { txtExcel.Text = frm.FileName; bind(txtExcel.Text); } } private void bind(string fileName) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties=Excel 8.0;"; OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn); DataSet ds = new DataSet(); try { da.Fill(ds); dt = ds.Tables[0]; this.dgv.DataSource = dt; } catch (Exception err) { MessageBox.Show("操作失败!" + err.ToString()); } } private void simpleButton2_Click(object sender, EventArgs e) { if (dgv.Rows.Count > 0) { DataRow dr = null; for (int i = 0; i < dt.Rows.Count; i++) { dr = dt.Rows[i]; insertToSql(dr); } MessageBox.Show("导入成功!"); } else { MessageBox.Show("没有数据!"); } } private void insertToSql(DataRow dr) { //excel表中的列名和数据库中的列名一定要对应 string xmlx = dr["XMLX"].ToString(); string xmbm = dr["XMXM"].ToString(); string xmmc = dr["XMMC"].ToString(); string xmdw = dr["XMDW"].ToString(); string dydj = dr["DYDJ"].ToString(); string zyxf = dr["ZYXF"].ToString(); string xmnr = dr["XMNR"].ToString(); DateTime kssj = Convert.ToDateTime(dr["KSSJ"].ToString()); DateTime jssj = Convert.ToDateTime(dr["JSSJ"].ToString()); int count=BLL10101.InsertOrUpdate(xmlx,xmbm,xmmc,xmdw,dydj,zyxf,xmnr,kssj,jssj); } } } 以上是我在网上找的代码,但是有出现错误,求大神们看看。![图片说明](https://img-ask.csdn.net/upload/201703/30/1490860056_295176.png)

Android SQLite数据库提取并存储到数组

开发过程中需要将蓝牙设备传给手机的数据存储下来,并能将数据存储在数组中,利用数组中的数据,我需要去描点画图。现在数据库已经创建成功,并且能够存储数据了,但是从数据库提取数据的时候,就无法运行,请大神指教 ``` private SaveDatabaseHelper dbHelper; ArrayList<String> dataList = new ArrayList<String>(); ... dbHelper = new SaveDataHelper(this,"Data.db",null,1); dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("data",data);//data值由蓝牙传入 dbHelper.insert(values); Cursor cursor = dbHelper.query(new String[]{"data"},"data = ?",null,null,null,null); if(cursor != null && cursor.getCount() >0){ while(cursor.moveToNext()){ for(int i = 0 ; i < cursor.getCount();i++){ String data = cursor.getString(cursor.getColumnIndex("data")); dataList.add(data); } } cursor.close(); } ``` 代码是这些,但是程序运行到insert方法之后就没有继续往下运行了,直接跳过了,不知道是什么原因,数据库这边我基础很弱,还请大神指导

SQLite 关于 将时间戳转换为date类型存在数据库中,请问这个应该怎么写呢?

如题,将时间戳time_t 转换为date类型村咋在sqlite中,应该怎么转呢?

android sqlite数据库表字段更新

android sqlite数据库表字段更新,调用onUpgrade方法出现了Can't upgrade read-only database from version 3 to 4: 异常,有哪个大神碰到过或者知道怎么解决。 代码: public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = " alter table person modify phone varchar(100)"; db.execSQL(sql); } ``` ``` ``` ```

打开SQlite数据库的时候报错

用嵌入SQLite数据库开发ios应用,我把数据库放到SQlite管理员,然后拖到Xcode工程中。但是当我打开DB的时候,报错 **out of memory** ,不知道是不是SQlite的bug,因为我的文件很小,应该不会报出内存问题。 初始化数据库的代码: - (id)initWithPath:(NSString *)path { if (self = [super init]) { BOOL success; NSError *error; NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *dbPath = [documentsDirectory stringByAppendingPathComponent:@"SoundLib_DB.sqlite"]; if ([fileManager fileExistsAtPath:dbPath] == NO) { NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"SoundLib_DB" ofType:@"sqlite"]; [fileManager copyItemAtPath:resourcePath toPath:dbPath error:&error]; } success = [fileManager fileExistsAtPath:dbPath]; if(!success) { NSLog(@"Cannot locate database file '%@'.", dbPath); } sqlite3 *dbConnection; //Here is when I get the error, at trying to open the DB if (sqlite3_open_v2("SoundLib", &dbConnection, SQLITE_OPEN_READWRITE, NULL) != SQLITE_OK) { NSLog(@"[SQLITE] Unable to open database!"); NSLog(@"%s Prepare failure '%s' (%1d)", __FUNCTION__, sqlite3_errmsg(database), sqlite3_errcode(database)); return nil; } database = dbConnection; } return self; }

用where条件查询SQLite数据库

在数据库中用string作为where条件查询数据库,程序就会关闭。如果换成数字作为条件,就没问题。帮我看一下代码: public ArrayList<Contact> getAvailableList() { // TODO Auto-generated method stub ArrayList<Contact> results = new ArrayList<Contact>(); String[] columns = new String[]{KEY_NAME, KEY_NUMBER, KEY_STATUS}; Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_STATUS +"=available" , null, null, null, KEY_NAME); String sName = ""; String sNum = ""; String status = ""; int iName = c.getColumnIndex(KEY_NAME); int iNumber = c.getColumnIndex(KEY_NUMBER); int iStatus = c.getColumnIndex(KEY_STATUS); Contact contact; for(c.moveToFirst(); ! c.isAfterLast(); c.moveToNext()) { contact = new Contact(); sName += c.getString(iName); sNum += c.getString(iNumber); status += c.getString(iStatus); contact.setName(sName); //contact.setPhoneNumber(sNum); contact.setPhoneNumber("0".concat(sNum)); contact.setStatus(status); results.add(contact); sName = ""; sNum = ""; status = ""; } return results; }

使用go从我的sqlite数据库获取最新记录

<div class="post-text" itemprop="text"> <p>I want to query my sqlite db to get the last id in my book table then insert the data with the last id + 1. I am new to Go and I can't figure out how to set my lastid int variable. Any help would be greatly appreciated. </p> <pre><code>func getBookLastID() { var lastid int err := db.QueryRow("select max(id) from books").Scan(&amp;lastid) fmt.Println(lastid) return (lastid + 1) } func insertBook(name, author string, pages int, publicationDate time.Time) (int, error) { //Create var bookID int var lastid int lastid = getBookLastID() err := db.QueryRow(`INSERT INTO books(id, name, author, pages, publication_date) VALUES($1, $2, $3, $4, $5)`, lastid, name, author, pages, publicationDate).Scan(&amp;bookID) if err != nil { return 0, err } fmt.Printf("Last inserted ID: %v ", bookID) return bookID, err } </code></pre> </div>

这个利用sqlite写的数据库为什么退出应用后再进去数据库就无法找到了啊

package com.sample.Sample_8_4; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentValues; import android.content.DialogInterface; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class Sample_8_4 extends Activity { private Button baseButton; private Button tableButton; private Button btn_sqlmod, btn_cvmod, btn_qur; private final String dbName = "mydb"; private final String tableName = "users"; private SQLiteDatabase db = null; private int i = 1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.main); baseButton = (Button) findViewById(R.id.base); // 实例化Button对象 baseButton.setOnClickListener(new OnClickListener() { // 为Button对象添加监听 public void onClick(View v) { db = openOrCreateDatabase(dbName, MODE_PRIVATE, null); // 创建名为“mydb”的数据库 db.endTransaction(); Toast.makeText(getApplicationContext(), "创建数据库成功", 1000) .show(); } }); tableButton = (Button) findViewById(R.id.table); // 实例化Button对象 tableButton.setOnClickListener(new OnClickListener() { // 为Button对象添加监听 public void onClick(View v) { if (db != null) { creatTable(); // 开始创建数据库表 } else { Toast.makeText(getApplicationContext(), "没有数据库", 1000).show(); } } }); btn_sqlmod = (Button) findViewById(R.id.sql_mod); btn_sqlmod.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (db != null) { sql_executeData(); } else { Toast.makeText(getApplicationContext(), "没有数据库", 1000) .show(); } } }); btn_cvmod = (Button) findViewById(R.id.cv_mod); btn_cvmod.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (db != null) { cv_executeData(); } else { Toast.makeText(getApplicationContext(), "没有数据库", 1000) .show(); } } }); btn_qur = (Button) findViewById(R.id.que); btn_qur.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (db != null) { queryData(); } else { Toast.makeText(getApplicationContext(), "没有数据库", 1000) .show(); } } }); } public void creatTable() { // 创建表的SQL语句,创建一个名为users的表,该表有id,uname和pwd三个字段 String sql = "CREATE TABLE IF NOT EXISTS " + tableName + " (id INTEGER PRIMARY KEY AUTOINCREMENT, uname VARCHAR(50), pwd VARCHAR(50));"; db.execSQL(sql); // 执行sql语句 db.endTransaction(); // 查询sqlite_master表中类型为table的记录的name字段 Cursor cursor = db.query("sqlite_master", new String[] { "name" }, "type = ?", new String[] { "table" }, null, null, null, null); String tables = ""; if (cursor.getCount() != 0) { // 判断查询结果的条数是否为0 cursor.moveToFirst(); // 游标指向第一条记录 for (int i = 0; i < cursor.getCount(); i += 1) { tables = tables + cursor.getString(0) + " "; // 累加字符串 cursor.moveToNext(); // 游标下移 } } // 把累加的结果显示在一个信息框中 new AlertDialog.Builder(Sample_8_4.this).setTitle("Message") .setMessage(tables) .setNegativeButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }).show(); } public void sql_executeData() { String sql; for (; i < 4; i++) { sql = "insert into " + tableName + " values ('" + i + "','a','123456')"; // 添加一条记录 db.execSQL(sql); db.endTransaction(); } sql = "update " + tableName + " set pwd='654321' where id='1'"; // 修改一条记录 db.execSQL(sql); db.endTransaction(); sql = "delete from " + tableName + " where id='2'"; // 删除一条记录 db.execSQL(sql); db.endTransaction(); Toast.makeText(getApplicationContext(), "使用SQL语句修改数据成功", 1000).show(); } public void cv_executeData() { ContentValues cv = new ContentValues(); // 实例化ContentValues对象 cv.put("uname", "b"); // 插入字段值 cv.put("pwd", "987654"); // 插入字段值 db.insert(tableName, null, cv); // 执行insert方法 db.insert(tableName, null, cv); // 执行insert方法 db.insert(tableName, null, cv); // 执行insert方法 cv = new ContentValues(); // 实例化ContentValues对象 cv.put("pwd", "456789"); // 插入字段值 db.update(tableName, cv, "id=?", new String[] { "4" }); // 执行update方法 db.delete(tableName, "id=?", new String[] { "5" }); // 执行delete操作 Toast.makeText(getApplicationContext(), "使用Android语句修改数据成功", 1000) .show(); } public void queryData() { Cursor cursor = db.query(tableName, null, null, null, null, null, null, null); // 执行query操作获得Cursor对象 String str = ""; if (cursor.getCount() != 0) { // 判断返回的记录条数 cursor.moveToFirst(); // 游标指向第一条记录 for (int i = 0; i < cursor.getCount(); i += 1) { str = str + cursor.getString(0) + " " + cursor.getString(1) + " " + cursor.getString(2) + "\n"; // 获取一条记录的每个字段的值 cursor.moveToNext(); // 游标指向下一条记录 } } // 在信息框上显示所有记录信息 new AlertDialog.Builder(Sample_8_4.this).setTitle("Message") .setMessage(str) .setNegativeButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }).show(); } }

我想把SQLite数据库里的数据显示到ListView上,代码有什么问题吗?

private ListView listview = null; private List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); private SimpleAdapter simpleAdapter = null; private ImageView iv; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //适配器添加查询结果,并加到ListView中显示 simpleAdapter = new SimpleAdapter(this, getData(), R.layout.item, new String[] {"name", "waimao","time","contact" ,"image"}, new int[] { R.id.name, R.id.waimao,R.id.time,R.id.contact,R.id.imageView1 }); listview.setAdapter(simpleAdapter); } /** * * @return */ private List<Map<String, Object>> getData() { DBHelper dbHelper = new DBHelper(this); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("select * from post", null); while (cursor.moveToNext()) { Integer pid = cursor.getInt(cursor.getColumnIndex("id")); String pname = cursor.getString(cursor.getColumnIndex("name")); String waimao = cursor.getString(cursor.getColumnIndex("waimao")); String time=cursor.getString(cursor.getColumnIndex("time")); String contact=cursor.getString(cursor.getColumnIndex("contact")); //从数据库中提取图片 byte[] pimage=null; pimage=cursor.getBlob(cursor.getColumnIndex("image")); Bitmap imagebitmap=BitmapFactory.decodeByteArray(pimage, 0, pimage.length); iv=(ImageView)findViewById(R.id.imageView1); iv.setImageBitmap(imagebitmap); //这里同样是查询,只不过把查询到的数据添加到list集合,可以参照ListView的用法 Map<String, Object> map = new HashMap<String, Object>(); map.put("id", pid); //获取_id map.put("name", pname); //获取name map.put("waimao", waimao); map.put("time", time); map.put("contact", contact); map.put("image",imagebitmap); list.add(map); } return list; }

运行 SQLite 数据库后程序崩溃

我设计的是查询数据库后下面的程序段返回一个数组。但是现在运行下面的程序时,奔溃了 //info 是类型数据中对象的名字 info.open(); String[] data = info.queryAll(); info.close(); 数据库代码部分,我想检索某一列中所有数据库的行 public String[] queryAll() { String[] columns = new String[] { KEY_NAME }; Cursor cursor = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); if (cursor != null) { try { final int nameColumnIndex = cursor.getColumnIndex(KEY_NAME); List<String> names = new ArrayList<String>(); while (cursor.moveToNext()) { names.add(cursor.getString(nameColumnIndex)); } return names.toArray(new String[names.size()]); } finally { cursor.close(); } } return null; } 是因为数据库刚开始是空的吗? LOGCAT 04-23 22:26:47.780: E/AndroidRuntime(2825): FATAL EXCEPTION: main 04-23 22:26:47.780: E/AndroidRuntime(2825): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.contactlist/com.example.contactlist.Contacts}: android.database.sqlite.SQLiteException: no such table: mycontacts (code 1): , while compiling: SELECT Contact_name FROM mycontacts 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.ActivityThread.access$600(ActivityThread.java:130) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.os.Handler.dispatchMessage(Handler.java:99) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.os.Looper.loop(Looper.java:137) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.ActivityThread.main(ActivityThread.java:4745) 04-23 22:26:47.780: E/AndroidRuntime(2825): at java.lang.reflect.Method.invokeNative(Native Method) 04-23 22:26:47.780: E/AndroidRuntime(2825): at java.lang.reflect.Method.invoke(Method.java:511) 04-23 22:26:47.780: E/AndroidRuntime(2825): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 04-23 22:26:47.780: E/AndroidRuntime(2825): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 04-23 22:26:47.780: E/AndroidRuntime(2825): at dalvik.system.NativeStart.main(Native Method) 04-23 22:26:47.780: E/AndroidRuntime(2825): Caused by: android.database.sqlite.SQLiteException: no such table: mycontacts (code 1): , while compiling: SELECT Contact_name FROM mycontacts 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200) 04-23 22:26:47.780: E/AndroidRuntime(2825): at com.example.contactlist.DBContact.queryAll(DBContact.java:97) 04-23 22:26:47.780: E/AndroidRuntime(2825): at com.example.contactlist.Contacts.onCreate(Contacts.java:38) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.Activity.performCreate(Activity.java:5008) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 04-23 22:26:47.780: E/AndroidRuntime(2825): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 04-23 22:26:47.780: E/AndroidRuntime(2825): ... 11 more

安卓数据库,某列数据类型是Integer , 怎么从cursor对象中取出来?

![图片说明](https://img-ask.csdn.net/upload/201902/14/1550133064_525054.png) 这两个 ![图片说明](https://img-ask.csdn.net/upload/201902/14/1550133085_567096.png) ``` Cursor cursor = db.query("AllSense",null,null, null, null,null,null); int i=cursor.getCount(); if(i>5){ cursor.moveToFirst(); // int id = cursor.getInt(cursor.getColumnIndex("_id")); } ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐