本教程分享:《dbhelper》,
DBHelper類
求一個完整的DBHelper類,最好是寫上每一步的注釋,哪一步是干嘛的,求代碼,求高手,如有請給我貼上,分不多不勝感激。...
求一個完整的DBHelper類,最好是寫上每一步的注釋,哪一步是干嘛的 ,求代碼,求高手,如有請給我貼上,分不多 不勝感激 。
怎么打開mysql。sql的
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
MyBatis。using System.Data;
using System.Configuration;
namespace DAL
{
public class SqlHelper
java.util,{
public static string cons = ConfigurationManager.ConnectionStrings["AliCon"].ConnectionString;
///
/// one
///
navicat?/// sql
/// object
public static object ExeOnlyOne(string sqlcmd)
{
object oRs = null;
javadoc,using(SqlConnection con = new SqlConnection())
{
con.ConnectionString = cons;
SqlCommand cmd = new SqlCommand(sqlcmd, con);
con.Open();
mysql8?oRs = cmd.ExecuteScalar();
con.Close();
}
return oRs;
}
mysqlworkbench,public static object ExeOnlyOne(string sqlcmd,params SqlParameter[] pars)
{
object oRs = null;
using (SqlConnection con = new SqlConnection())
{
java連接mysql數據庫。con.ConnectionString = cons;
SqlCommand cmd = new SqlCommand(sqlcmd, con);
cmd.Parameters.AddRange(pars);
con.Open();
oRs = cmd.ExecuteScalar();
jdbc mysql、con.Close();
}
return oRs;
}
///
java如何和mysql連接?/// insert update delete
///
/// sql
/// int
public static int ExeCUD(string sqlcmd)
navicat for MySQL。{
int iRs = -1;
using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = cons;
java如何連接mysql數據庫?SqlCommand cmd = new SqlCommand(sqlcmd, con);
con.Open();
iRs = cmd.ExecuteNonQuery();
con.Close();
}
java pagehelper、return iRs;
}
public static int ExeCUD(string sqlcmd,params SqlParameter[] pars)
{
int iRs = -1;
mysql binlog?using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = cons;
SqlCommand cmd = new SqlCommand(sqlcmd, con);
cmd.Parameters.AddRange(pars);
mysql使用方法、con.Open();
iRs = cmd.ExecuteNonQuery();
con.Close();
}
return iRs;
}
///
/// all
///
/// sql
/// DataTable
public static DataTable ExeAll(string sqlcmd)
{
DataTable dt = null;
using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = cons;
SqlDataAdapter sda = new SqlDataAdapter(sqlcmd,con);
DataSet ds = new DataSet();
sda.Fill(ds);
dt = ds.Tables[0];
}
return dt;
}
public static DataTable ExeAll(string sqlcmd,params SqlParameter[] pars)
{
DataTable dt = null;
using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = cons;
SqlDataAdapter sda = new SqlDataAdapter(sqlcmd, con);
sda.SelectCommand.Parameters.AddRange(pars);
DataSet ds = new DataSet();
sda.Fill(ds);
dt = ds.Tables[0];
}
return dt;
}
///
/// all
///
/// sql
/// SqlDataReader
public static SqlDataReader ExeReader(string sqlcmd)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = cons;
SqlCommand cmd = new SqlCommand(sqlcmd, con);
con.Open();
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdr;
}
public static SqlDataReader ExeReader(string sqlcmd,params SqlParameter[] pars)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = cons;
SqlCommand cmd = new SqlCommand(sqlcmd, con);
cmd.Parameters.AddRange(pars);
con.Open();
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdr;
}
}
}
access的
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
namespace DAL
{
///
/// OLEDBHelper 的摘要說明
///
public class OLEDBHelper
{
///
/// 連接數據庫字符串
///
public static string strCon = ConfigurationManager.ConnectionStrings["DemoCon"].ConnectionString;
///
/// 執行得到一行一列
///
/// sql語句
/// object對象
public static object ExeOnlyOne(string sqlText)
{
object oRs = null;
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = strCon;
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = sqlText;
cmd.Connection = con;
con.Open();
oRs = cmd.ExecuteScalar();
con.Close();
}
return oRs;
}
///
/// 重載ExecuteOnlyOne
///
/// 命令
/// 參數【個數不定】
///
public static object ExeOnlyOne(string sqlText, params OleDbParameter[] pars)
{
object oRs = null;
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = strCon;
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = sqlText;
cmd.Connection = con;
cmd.Parameters.AddRange(pars);
con.Open();
oRs = cmd.ExecuteScalar();
con.Close();
}
return oRs;
}
///
/// 執行Insert update delete語句
///
/// sql語句
/// 受影響行數
public static int ExeCUD(string sqlText)
{
int iRs = 0;
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = strCon;
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = sqlText;
cmd.Connection = con;
con.Open();
iRs = cmd.ExecuteNonQuery();
con.Close();
}
return iRs;
}
///
/// 執行帶參數的Insert update delete語句
///
/// sql語句
/// 參數
/// 受影響行數
public static int ExeCUD(string sqlText, params OleDbParameter[] pars)
{
int iRs = 0;
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = strCon;
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = sqlText;
cmd.Connection = con;
cmd.Parameters.AddRange(pars);
con.Open();
iRs = cmd.ExecuteNonQuery();
con.Close();
}
return iRs;
}
///
/// 查詢多條結果
///
/// sql語句
/// DataTable
public static DataTable ExeAll(string sqlText)
{
DataTable dtRs = null;
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = strCon;
OleDbDataAdapter sda = new OleDbDataAdapter();
sda.SelectCommand = new OleDbCommand(sqlText, con);
DataSet ds = new DataSet();
sda.Fill(ds);
dtRs = ds.Tables[0];
}
return dtRs;
}
///
/// 查詢帶參的多條結果
///
/// sql語句
/// 參數
/// DataTable
public static DataTable ExeAll(string sqlText, params OleDbParameter[] pars)
{
DataTable dtRs = null;
using (OleDbConnection con = new OleDbConnection())
{
con.ConnectionString = strCon;
OleDbDataAdapter sda = new OleDbDataAdapter();
sda.SelectCommand = new OleDbCommand(sqlText, con);
sda.SelectCommand.Parameters.AddRange(pars);
DataSet ds = new DataSet();
sda.Fill(ds);
dtRs = ds.Tables[0];
}
return dtRs;
}
///
/// 游標讀取數據SqlDataReader
///
/// 語句
/// OleDbDataReader
public static OleDbDataReader ExeReader(string sqlText)
{
OleDbDataReader sdrRs = null;
OleDbConnection con = new OleDbConnection();
con.ConnectionString = strCon;
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = sqlText;
con.Open();
sdrRs = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdrRs;
}
///
/// 帶參reader的sql語句執行
///
/// 語句
/// 參數
/// OleDbDataReader
public static OleDbDataReader ExeReader(string sqlText, params OleDbParameter[] pars)
{
OleDbDataReader sdrRs = null;
OleDbConnection con = new OleDbConnection();
con.ConnectionString = strCon;
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = sqlText;
cmd.Parameters.AddRange(pars);
con.Open();
sdrRs = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdrRs;
}
}
}
實現繼承 SQLiteOpenHelper 類的 dbHelper 類?
移動應用開發怎么實現繼承SQLiteOpenHelper類的dbHelper類?...
移動應用開發怎么實現繼承 SQLiteOpenHelper 類的 dbHelper 類?
.NET DBHelper 類的調用問題
DBHelper類怎么調用呢,在百度有說直接調用的,還有找DBHelper類代碼的難道是先寫好代碼才可以用嗎,還是在調用前要做一些操作引用呢。我直接調用是報錯的呀,請大俠指教...
DBHelper 類 怎么調用呢 ,在百度有說直接調用的,還有找DBHelper 類代碼的
難道是先寫好代碼才可以用嗎,還是在調用前要做一些操作引用呢。
我直接調用是報錯的呀,請大俠指教
如果你是三層架構的,那么DBHelper一般會放在DAL數據層。
一般用到DBHelper也就在數據層了,同一個層不需要引用,如果這個DBHelper是靜態類的話,那么類名.方法或屬性就可以直接調用了。
如果不是靜態類,那么用的時候NEW個對象出來再調用DBHelper的相關方法或屬性就可以了。
備注:如果你使用DBHelper類的位置和DBHelper所在的位置不在同一個類庫下,那么這個時候是需要引用DBHelper類所在的這個類庫的。
老大太高深了?我自己研究的.net?就是跳轉窗口剛弄明白的水平,
做了一個方法
直接調用,報錯
能說的初級的知識嗎?麻煩了謝謝
資料提供的DBHelper?抄了一遍?報錯k
m
追答
三2句也說不請,留個聯系方式,我加你。
android程序數據庫問題... DBHelper helper = new ...
DBHelper是我重寫的類,單獨建立了一個DBHelper.java用來說明數據庫,然后實例化了一個數據庫,DB_NAME應該同oncreat(SQLiteDatabase***)里的***一致吧?version的值是啥呀?...還有實...
DBHelper是我重寫的類,單獨建立了一個DBHelper.java用來說明數據庫,然后實例化了一個數據庫,DB_NAME應該同oncreat(SQLiteDatabase ***)里的***一致吧?version的值是啥呀?...
還有實例化數據庫以后,寫個這個:SQLiteDatabase db = carhelper.getWritableDatabase(); 在多個.java文件中實行數據庫操作是都指向同一個數據庫嗎?
真是糾結了,跪求幫助
DBHelper helper = new DBHelper(this, DB_NAME, null, VERSION); 應該寫在哪里啊?老是報錯
提示DB_NAME和VERSION不能被定義成變量,可是我看很多源碼都是這么寫的...幫幫我吧...這句話怎么寫呀?DB_NAME和VERSION是前面要定義還是就這么寫呀?
展開
這里用ContentProvider方法來定義數據庫。。
public class AlarmProvider extends ContentProvider //
{
private static final String DB_NAME = "Alarm.db"; //數據庫名
private static final int DB_VERSION = 1;//版本號,當程序第一次運行時,數據庫被建立,如果
//你更改了數據庫,如增加一個表,這時,這個值一般要改一下,這樣程序再次安裝運行
//時,數據庫可自行升級。。如果不改通常要手動刪除數據庫。。
private static final String ALARM_TABLE_NAME = "alarm"; //一個表名
private static final int ALARM = 1; //與表對應的整數值,相當于id
private static UriMatcher mUriMathcer; //Uri匹配器,建立uri,表名,id三者之間的關系,如下:
static{
mUriMathcer = new UriMatcher(UriMatcher.NO_MATCH);
mUriMathcer.addURI(AlarmInfo.AUTH, "alarm", ALARM);
}
private interface CreateTableInterface //表創建接口
{
public abstract void createAlarmTable(SQLiteDatabase db);
}
//內部類,數據庫助手類,并實現表創建接口
private static class DatabaseHelper extends SQLiteOpenHelper implements CreateTableInterface
{
CreateTableInterface mCreateTableInterface = this;
Context mContext = null;
//構造函數,該函數調用后,數據庫沒有
//創建。。也就是下面的onCreate不會在它調用后就立即調用創建db
public DatabaseHelper(Context context)
{
super(context, DB_NAME, null, DB_VERSION);
// Log.i(TAG, "DatabaseHelper be called!");
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) //這個方法只在第一次db連接創建db時調用,只一次
{
//create db table
mCreateTableInterface.createAlarmTable(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) //db升級時調用
{
// Log.i(TAG, "onUpgrade() be called!");
db.execSQL("DROP TABLE IF EXISTS "+ALARM_TABLE_NAME);
onCreate(db);
}
@Override
public void createAlarmTable(SQLiteDatabase db)
{
// 創建表
db.execSQL("CREATE TABLE "+ALARM_TABLE_NAME+" ("
+AlarmInfo._ID+" INTEGER PRIMARY KEY,"
+AlarmInfo._LABEL+" TEXT NOT NULL,"
+AlarmInfo._TIME+" TEXT NOT NULL,"
+AlarmInfo._ALERT+" TEXT NOT NULL,"
+AlarmInfo._REPEAT+" TEXT NOT NULL,"
+AlarmInfo._ACTIVE+" TEXT NOT NULL"
+");");
//在表中插入一些數據。。。
db.execSQL("INSERT INTO "+ALARM_TABLE_NAME+"("+AlarmInfo._LABEL+","
+AlarmInfo._TIME+","+AlarmInfo._ALERT+","
+AlarmInfo._REPEAT+","+AlarmInfo._ACTIVE+
") VALUES('Lunch Alarm','11 : 45 AM','"+Tag.TONE+"','"+Tag.EVERY_DAY+"','false');");
db.execSQL("INSERT INTO "+ALARM_TABLE_NAME+"("+AlarmInfo._LABEL+","
+AlarmInfo._TIME+","+AlarmInfo._ALERT+","
+AlarmInfo._REPEAT+","+AlarmInfo._ACTIVE
+") VALUES('Work Alarm','08 : 45 AM','"+Tag.TONE+"',"+"'Mon,Tue,Wed,Thu,Fri'"
+",'false');");
db.execSQL("INSERT INTO "+ALARM_TABLE_NAME+"("+AlarmInfo._LABEL+","
+AlarmInfo._TIME+","+AlarmInfo._ALERT+","+AlarmInfo._REPEAT+","
+AlarmInfo._ACTIVE
+") VALUES('Work Alarm','09 : 00 AM','"+Tag.TONE+"',"
+"'"+Tag.WEEKENDS+"','false');");
db.execSQL("INSERT INTO "+ALARM_TABLE_NAME+"("+AlarmInfo._LABEL+","
+AlarmInfo._TIME+","+AlarmInfo._ALERT+","+AlarmInfo._REPEAT+","
+AlarmInfo._ACTIVE
+") VALUES('Yoga','10 : 15 PM','"+Tag.TONE+"',"+"'Sun,Wed','false');");
}
}
}
private DatabaseHelper mDatabaseHelper; //定義helper
//以下重寫insert,delete,update,query等方法
@Override
public synchronized int delete(Uri uri, String selection, String[] selectionArgs)
{
SQLiteDatabase db = null;
boolean success = false;
int count = 0;
try{
db = mDatabaseHelper.getWritableDatabase();
db.acquireReference();
success = true;
switch(mUriMathcer.match(uri)){
case ALARM:
count = db.delete(ALARM_TABLE_NAME, selection, selectionArgs);
break;
}
}catch(SQLException e){
e.printStackTrace();
}finally{
if(success == true){
db.releaseReference();
}
}
return count;
}
@Override
public String getType(Uri uri)
{
switch(mUriMathcer.match(uri)){
case ALARM:
return AlarmInfo.CONTENT_TYPE;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
}
@Override
public synchronized Uri insert(Uri uri, ContentValues initValues)
{
SQLiteDatabase mSQLiteDatabase = null;
boolean success = false;
try{
mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
mSQLiteDatabase.acquireReference();
success = true;
long mRowId;
ContentValues values;
if(initValues == null){
values = new ContentValues();
}else{
values = initValues;
}
switch(mUriMathcer.match(uri)){
case ALARM:
mRowId = mSQLiteDatabase.insert(ALARM_TABLE_NAME,
AlarmInfo._ID, values);
if(mRowId > 0){
return uri;
}else{
throw new SQLException("Failed to insert to "+uri);
}
}
}catch(SQLException e){
e.printStackTrace();
}finally{
if(success == true)
mSQLiteDatabase.releaseReference();
}
return null;
}
@Override
public boolean onCreate()
{
// Log.i("alarm provider", "onCreate()...");
mDatabaseHelper = new DatabaseHelper(getContext());
return true;
}
@Override
public synchronized Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder)
{
SQLiteQueryBuilder mSQLiteQueryBuilder = new SQLiteQueryBuilder();
switch(mUriMathcer.match(uri)){
case ALARM:
mSQLiteQueryBuilder.setTables(ALARM_TABLE_NAME);
break;
}
SQLiteDatabase mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
mSQLiteDatabase.acquireReference();
Cursor mCursor = mSQLiteQueryBuilder.query(mSQLiteDatabase, projection,
selection, selectionArgs, null, null, sortOrder);
mSQLiteDatabase.releaseReference();
return mCursor;
}
@Override
public synchronized int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs)
{
SQLiteDatabase mSQLiteDatabase = null;
int count = 0;
boolean success = false;
try{
mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
mSQLiteDatabase.acquireReference();
success = true;
switch(mUriMathcer.match(uri)){
case ALARM:
count = mSQLiteDatabase.update(ALARM_TABLE_NAME, values,
selection, selectionArgs);
break;
default:
break;
}
}catch(SQLException e){
e.printStackTrace();
}finally{
if(success == true)
mSQLiteDatabase.releaseReference();
}
return count;
}
}
可以參考android alarm源碼,query,update等方法寫法基本不改什么,只替換表名。或增加一個case.
DBHelper類中的.ExecuteCommand和.GetScalar區別是...
其實你只需明白
GetScalar()方法只返回 第一行第一列
就知道區別了吧
ExecuteCommand,卻返回所有你要查詢的
比如 select top 10 * from userInfo
那么ExecuteCommand就返回了10行
而 GetScalar只返回了一行,而且是只有第一列的一行
安卓 DBhelper
我想使用DBhelper,數據庫已經做好了,需要放在哪個文件夾,怎么使用,主要是構造函數怎么寫?已經有了數據庫,只需要使用,不需創建,該怎么辦?就是說數據庫是用外部程序創建的。...
我想使用DBhelper,數據庫已經做好了,需要放在哪個文件夾,怎么使用,主要是構造函數怎么寫?
已經有了數據庫,只需要使用,不需創建,該怎么辦?就是說數據庫是用外部程序創建的。
一般就放在工程目錄下的
大致的寫法如下,都是大同小異的,就是一些需求可能有區別:
public class MyDBHelper extends SQLiteOpenHelper {
private static final int VERSION = 2;
public static final String DBName = "userinfos";
public static final String USER_TABLE_NAME = "users";
private String CREATE_TABLE = "create table if not exists "+USER_TABLE_NAME+"(personid integer primary key,name varchar(20),age integer)";
public MyDBHelper (Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, VERSION);
}
/**
* 對外創建該類的時候就用這個方法,比較方便,因為數據庫的版本號以及CursorFactory一般也不會改變。
* @param context
*/
public MyDBHelper(Context context) {
super(context, DBName, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL( CREATE_TABLE);
}
}
在Android開發中 DatabaseHelper dbHelper = new D...
這個應該是數據庫名字吧,DatabaseHelper這個類是被你又封閉過的,通常是繼承SQLiteOpenHelper 類,重寫一下以方便管理數據庫。
實現繼承 SQLiteOpenHelper 類的 dbHelper 類。
《移動應用開發》應用于安卓系統,如何實現繼承SQLiteOpenHelper類的dbHelper類。要求:邏輯結構完整,答案要點突出,論述充分,每題答案字數不少于400字。...
《移動應用開發》應用于安卓系統,如何實現繼承 SQLiteOpenHelper 類的 dbHelper 類。
要求:邏輯結構完整,答案要點突出,論述充分,每題答案字數不少于400字。
Android是有自帶的類庫的:SQLiteOpenHelper,使用的時候繼承這個類,然后寫邏輯就可以,一般使用單例模式: public synchronized static DBHelper getDBHelper(Context context) { if (helper == null) { helper = new DBHelper(context); } return helper; } private DBHelper(Context context) { super(context, "自己的數據庫名", null, 數據庫版本); } 使用的時候也很簡單,下面是一個刪除操作: public synchronized void deleteSite(String packname) { SQLiteDatabase db = getWritableDatabase(); try { db.beginTransaction(); db.delete("site", "packname=?", new String[] { packname }); db.setTransactionSuccessful(); } finally { db.endTransaction(); if (db != null) { } } }
C# 里面DBhelper helper = new DBHelper(); 是什么...
DBhelper這個通常是連接數據庫的類,是自己定義的,意思就是你定義的時候想起什么名就什么名。DBhelper這個類里面有一個連接數據庫方法,DBhelper helper = new DBHelper(); 是用來實例化一個類的對象,用這個對象helper來調用里面連接數據庫的方法。
C#怎么使用DBHelper類連接數據庫?
首先你得有DBHelpler這個類,然后你看這個類中你要進行調用的方法是不是靜態的如果是靜態的直接用類名.方法名即可,前提是引用這個類的命名空間,如果不是靜態的話,那么就new一下這個類,然后用這個new的DBHelper的變量點出你要用的方法即可,如果你沒有DBHelper的話,你可以去下載一個,或者找一個,或者自己寫一個。
追問
復制過來的 我自己也能找到呀 就是沒懂才問的啦
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态