android µÄsqlite Ö÷¼üÓësimpleCursorAdapter
×î½üÔÚÔÚ×öÒ»¸öСÀý×Óʱ£¬³öÏÖÒ»¸öСÎÊÌ⣬¾ÍÊDz»ÄÜÏÔʾ´ÓÊý¾Ý¿âÖвé³öµÄÊý¾Ý£¬ºóÀ´ÔÚÍøÉϲéÁËÒ»²é£¬²ÅÖªµÀÔÀ´ÊÇÕâ¸öÎÊÌâ¡£
ÔÚʹÓÃsimpleCursorAdapterÏÔʾsqliteÊý¾Ýʱ£¬±ØÐë×¢ÒâsqliteµÄÖ÷¼üÃüÃû¡£ÓÉÓÚsimpleCursorAdapterµÄ·½·¨Ö»Ê¶±ð_id£¬ËùÒÔ£¬µ±ÄãÓõ½sqliteµÄsimpleCursorAdapterʱ£¬±ØÐë°ÑÊý¾Ý±íµÄÖ÷¼üÃüÃûΪ_id¡£·ñÔò¾Í»á³öÏÖ java.lang.IllegalArgumentException: column ‘_id’ does not exist ´íÎó¡£
ÏÂÃæÊÇActivityMainÀà ¹©´ó¼Ò²Î¿¼ һϡ£
public class ActivityMain extends Activity {
private static int count =0;
//´´½¨Êý¾Ý¿â¶ÔÏó
private SQLiteDatabase mSqliteDatabase=null;
//Êý¾Ý¿âÃû
private static final String DATABASE_NAME="gege.db";
//±íÃû
private static final String TABLE_NAME="jiao";
//±íÖÐ×Ö¶Î
private static final String TABLE_ID="_id";
private static final String TABLE_NUM="num";
private static final String TABLE_DATA="data";
//´´½ ......
package com.jiao.sqlite;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class DbDemo extends Activity {
/**
* SQLite Demo
*
* ¹©Activity˽ÓзÃÎʵÄÊý¾Ý¿â ûÓÐʹÓÃContentProvider ·½Ê½ Ôö¼Ó ²éѯÊý¾Ý
*
* @author daguangspecial@gmail.com
*
*/
EditText inputTxt;
Button btnAdd;
Button btnViewAll;
TextView viewAll;
DBHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
&n ......
ÔÚ .NET ÀïÃæÊ¹Óà SQLite£¬ ÎÒÕâÀïʹÓõÄwrapperÊÇ System.Data.SQLite£¬ËüÖ»ÐèÒªÒ»¸ödll,½Ó¿Ú·ûºÏADO.Net 2.0µÄ¶¨Òå,ÐÔÄÜÒ²²»´í,NHibernateÓõÄÒ²ÊÇËü£¬Ä¿Ç°Ö§³ÖADO.NET 3.5ÁË£¬Ö§³Ö¼¯³ÉÔÚ VS2005 ºÍ VS2008ÀïÃæ£¬¶øÇÒÖ§³Öwince£¬ÊǸöÁÁµã
ÒòΪ·ûºÏADO.NETµÄ¹æ·¶£¬ËùÒÔʹÓ÷½Ê½£¬»ù±¾ºÍ SqlClient, OleDbµÈÔÉúµÄÒ»ÖÂ
using System.Data;
using System.Data.SQLite;
//...
using (SQLiteConnection cn = new SQLiteConnection(
"Data Source=Test.db3;Pooling=true;FailIfMissing=false")
)
//PoolingÉèÖÃΪtrueʱ£¬SQLÁ¬½Ó½«´ÓÁ¬½Ó³Ø»ñµÃ£¬Èç¹ûûÓÐÔòн¨²¢Ìí¼Óµ½Á¬½Ó³ØÖÐ,ĬÈÏÊÇtrue¡£
//FailIfMissingĬÈÏΪfalse£¬Èç¹ûÊý¾Ý¿âÎļþ²»´æÔÚ£¬»á×Ô¶¯´´½¨Ò»¸öеģ¬ÈôÉèÖÃΪtrue£¬½«²»»á´´½¨£¬¶øÊÇÅ׳öÒì³£ÐÅÏ¢¡£
{
//ÔÚ´ò¿ªÊý¾Ý¿âʱ£¬»áÅжÏÊý¾Ý¿âÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚ£¬ÔòÔÚµ±Ç°Ä¿Â¼Ï´´½¨Ò»¸ö
cn.Open();
using (SQLiteCommand cmd = new SQLiteCommand())
{
cmd.Connection = cn; ......
ÔÚ .NET ÀïÃæÊ¹Óà SQLite£¬ ÎÒÕâÀïʹÓõÄwrapperÊÇ System.Data.SQLite£¬ËüÖ»ÐèÒªÒ»¸ödll,½Ó¿Ú·ûºÏADO.Net 2.0µÄ¶¨Òå,ÐÔÄÜÒ²²»´í,NHibernateÓõÄÒ²ÊÇËü£¬Ä¿Ç°Ö§³ÖADO.NET 3.5ÁË£¬Ö§³Ö¼¯³ÉÔÚ VS2005 ºÍ VS2008ÀïÃæ£¬¶øÇÒÖ§³Öwince£¬ÊǸöÁÁµã
ÒòΪ·ûºÏADO.NETµÄ¹æ·¶£¬ËùÒÔʹÓ÷½Ê½£¬»ù±¾ºÍ SqlClient, OleDbµÈÔÉúµÄÒ»ÖÂ
using System.Data;
using System.Data.SQLite;
//...
using (SQLiteConnection cn = new SQLiteConnection(
"Data Source=Test.db3;Pooling=true;FailIfMissing=false")
)
//PoolingÉèÖÃΪtrueʱ£¬SQLÁ¬½Ó½«´ÓÁ¬½Ó³Ø»ñµÃ£¬Èç¹ûûÓÐÔòн¨²¢Ìí¼Óµ½Á¬½Ó³ØÖÐ,ĬÈÏÊÇtrue¡£
//FailIfMissingĬÈÏΪfalse£¬Èç¹ûÊý¾Ý¿âÎļþ²»´æÔÚ£¬»á×Ô¶¯´´½¨Ò»¸öеģ¬ÈôÉèÖÃΪtrue£¬½«²»»á´´½¨£¬¶øÊÇÅ׳öÒì³£ÐÅÏ¢¡£
{
//ÔÚ´ò¿ªÊý¾Ý¿âʱ£¬»áÅжÏÊý¾Ý¿âÊÇ·ñ´æÔÚ£¬Èç¹û²»´æÔÚ£¬ÔòÔÚµ±Ç°Ä¿Â¼Ï´´½¨Ò»¸ö
cn.Open();
using (SQLiteCommand cmd = new SQLiteCommand())
{
cmd.Connection = cn; ......
ÏÖÏó£º
ÏÖÔÚ×öÒ»¸ö³ÌÐò£¬¶ÔÊý¾Ý¿âµÄ¼¸¸ö×°ÓдóÁ¿Êý¾ÝµÄ±í½øÐвÙ×÷£¬¶ÔÆäÖеÄÒ»¸ö±í½øÐÐ
Ñ»·²Ù×÷£¬ÒÔ´¦ÀíÆäËûµÄ¼¸¸ö±í¡£ÆäÖÐÓõ½Á˼¸¸öquery,update£¬µ±³ÌÐòÅܵĹý³ÌÖУ¬
SQLSERVERµÄÄÚ´æ²»¶ÏµÄÔö³¤£¬ÅÜÍêºó¹Ø±Õ³ÌÐòÍ˳öºóÒ²²»½µÏÂÀ´¡£
½â¾ö£º
ÕâÊÇSQLµÄÄÚ´æ¹ÜÀí»úÖÆ¾ö¶¨µÄ£¬SQL¹ÜÀíÄÚ´æµÄÔÔòÊÇÕâÑùµÄ,Ö»ÒªÄãµÄÄÚ´æ¹»ÓÃ(Õâ¸ö¹»ÓÃÊÇÖ¸Äã·ÖÅ䏸SQLµÄ¿ÉÓÃÄÚ´æ),ÔòSQL²»»áÊÍ·ÅÕ¼ÓõÄÄÚ´æ,еIJÙ×÷»á·ÖÅäеÄÄÚ´æ,Ö±µ½·ÖÅäÍê¿ÉÓõÄÄÚ´æºó,²Å»áÊÍ·ÅÄڴ棬ÒòΪÄÚ´æÕ¼ÓûáÒ»Ö±ÉÏÕÇ,Ö±µ½´ïµ½¼«ÏÞ
½â¾öµÄ·½·¨ÊÇÏÞÖÆ¸øSQLµÄ¿ÉÓÃÄÚ´æÁ¿
ÁíÍ⣬¶ÔÓÚÆµ·±²Ù×÷Êý¾Ý¿âµÄ²Ù×÷£¬²»ÒªÃ¿Ò»´Î¶¼È¥getConnection£¬È»ºóÔÙclose£¬ÕâÑùÊǺÜÏûºÄÄÚ´æµÄ£¬sql serverµÄÄÚ´æ»á³ÖÐøÔö³¤£¬¼´Ê¹Ã¿´Î¶¼¶Ôconnection×öÁËclose£¬sql serverµÄÄڴ滹Êǻ᲻ͣÔö³¤£¬ËäÈ»sql server»á×Ô¶¯µ÷½Ú£¬²»»áÈÃϵͳËÀµô£¬µ«ÊÇÄÚ´æÌ«ÉÙ£¬×öÈκβÙ×÷¶¼»á±äµÄºÜÂýÁË¡£¿ÉÐеİ취ÊÇ£¬¶ÔÓÚÆµ·±µÄÊý¾Ý¿â²Ù×÷£¬¸ù¾ÝÖ´ÐеÄÀàÐÍ£¬±ÈÈç°´select¡¢update¡¢insertÀ´·ÖÀ࣬ÔÚÄÚ´æÖн¨Á¢staitc Connection£¬ÈÃÕâЩƵ·±µÄ²Ù×÷£¬Ò²¾ÍÊÇ˵¼õÉÙConnectionµÄ½¨Á¢ÊýÁ¿£¬ÕâÑù¾Í»á´ó·ù¶ÈµÄ½µµÍÄÚ´æµÄÏûºÄÁ¿£¬Äڴ漸ºõ²»Ôö³¤ÁË£¬ÎÊÌâ¾Í½â¾öÁË¡£ ......
1.½¨±í(Create table)ʱʹÓà IDENTITY (SEED,INCREMENT)
ÆäÖÐSEEDÊÇÆðʼֵ£¬INCREMENTÊÇÔöÁ¿¡£
Àý£º
CREATE TABLE mytable1
(
[user_id] BIGINT NOT NULL
IDENTITY(1, 1) ,
[user_mail] NVARCHAR(255)
)
ÃüÁîÒѳɹ¦Íê³É¡£
2.Ð޸ıí(Alter table)ÁеÄ×ÔÔö³¤
SQLServer²»ÔÊÐíÐÞ¸ÄÒѾ´æ´¢µÄ×ÔÔö³¤ÁУ¬µ«ÊÇ¿ÉÒÔΪһ¸öûÓÐ×ÔÔö³¤±êʶÁеıíÌí¼Ó×ÔÔö³¤ÁÐ
Àý£º
DROP TABLE mytable1 -- ɾ³ý¸Õ²Å´´½¨µÄ±í
CREATE TABLE mytable1
(
[user_mail] NVARCHAR(255)
)
ALTER TABLE mytable1 ADD [user_id] BIGINT IDENTITY(1,1)
ÃüÁîÒѳɹ¦Íê³É¡£
3.ÊÖ¶¯²åÈë×ÔÔö³¤×ֶεÄÖµ
Àý£º
SET IDENTITY_INSERT mytable1 ON -- ¿ªÆô ÊÖ¶¯
INSERT INTO mytable1
( [user_id], [user_mail] )
VALUES ( 10, N'oyi319@email.com' )
SET IDENTITY_INS ......
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create function [dbo].[split](@str nvarchar(1000),@word varchar(5),@no
int) returns nvarchar(500)
as begin
declare @len int
declare @index int
set @index=charindex(@word,@str)
set @index=len(@word)+@index-1
set @len=len(@str)
if @index >0 and @no=2
return substring(@str,@index+1,@len)
else if @index>0 and @no=1
return substring(@str,0,@index-len(@word)+1)
return @str
end ......