小型数据库的使用在移动开发过程中非常方便,Mono for android提供了多种数据库访问方式,可以使用sqlite、使用WCF直接访问数据库,sqlite的访问非常简单,下面是一个使用monodroid(或者Mono for andorid访问数据库的方法):

///

/// A helper class for working with SQLite

///

public static class Database

{

private static string db_file = “database.db3”;

public static SqliteConnection GetConnection ()

{

var dbPath = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.Personal), db_file);

bool exists = File.Exists (dbPath);

if (!exists)

SqliteConnection.CreateFile (dbPath);

var conn = new SqliteConnection (“Data Source=” + dbPath);

if (!exists)

CreateDatabase (conn);

return conn;

}

private static void CreateDatabase (SqliteConnection connection)

{

var sql = “CREATE TABLE version (Id INTEGER PRIMARY KEY AUTOINCREMENT, isforce NUMERIC, version TEXT, url TEXT, info TEXT, dates datetime,isupdate NUMERIC);”;

connection.Open ();

using (var cmd = connection.CreateCommand ()) {

cmd.CommandText = sql;

int temp=cmd.ExecuteNonQuery ();

}

connection.Close ();

}

}

具体的使用sql语句访问数据库的方法例子:

public List<Model.appVersion> GetAllVersion ()

{

List<Model.appVersion> mList=new List<Model.appVersion>();

var sql =“select id,isforce,version,url,info,dates,isupdate from version”;

using (var conn = Database.GetConnection ()) {

conn.Open ();

using (var cmd = conn.CreateCommand ()) {

cmd.CommandText = sql;

using (var reader = cmd.ExecuteReader ()) {

while (reader.Read ())

mList.Add(new Model.appVersion(reader.GetInt32(0),reader.GetInt32(1),reader.GetString(2),reader.GetString(3),reader.GetString(4),reader.GetDateTime(5),reader.GetInt32(6)));

}

}

}

return mList;

}