简版DBHelper类


DBHelper类

记得引用System.Configuration

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestDAL
{
    public class DBHelperDAL
    {
        //数据库链接字符串
        public static string ConnString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

        //数据库连接对象
        public static SqlConnection Conn = null;

        //初始化数据库连接
        public static void InitConnection()
        {
            //如果连接对象不存在,则创建连接
            if (Conn == null)
            {
                Conn = new SqlConnection(ConnString);
            }
            //如果连接对象关闭,则打开连接
            if (Conn.State == ConnectionState.Closed)
            {
                Conn.Open();
            }
            //如果连接中断,则重启连接
            if (Conn.State == ConnectionState.Broken)
            {
                Conn.Close();
                Conn.Open();
            }
        }

        //查询,获取DataReader
        public static SqlDataReader GetDataReader(string sqlStr)
        {
            InitConnection();
            SqlCommand cmd = new SqlCommand(sqlStr, Conn);
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }

        //查询,获取DataSet
        public static DataSet GetDataSet(string sqlStr)
        {
            InitConnection();
            DataSet ds = new DataSet();
            SqlDataAdapter dap = new SqlDataAdapter(sqlStr, Conn);
            dap.Fill(ds);
            Conn.Close();
            return ds;
        }

        //查询,获取DataTable
        public static DataTable GetDataTable(string sqlStr)
        {
            return GetDataSet(sqlStr).Tables[0];
        }

        //增删改
        public static bool ExecuteNonQuery(string sqlStr)
        {
            InitConnection();
            SqlCommand cmd = new SqlCommand(sqlStr, Conn);
            int result = cmd.ExecuteNonQuery();
            Conn.Close();
            return result > 0;
        }

        //执行集合函数
        public static string ExectuteScalar(string sqlStr)
        {
            InitConnection();
            SqlCommand cmd = new SqlCommand(sqlStr, Conn);
            string result = cmd.ExecuteScalar().ToString();
            Conn.Close();
            return result;
        }
    }
}

web.config 配置

  <connectionStrings>
    <add name="DefaultConnection" providerName="System.Data.sqlClient" connectionString="server=.;database=DBTest;uid=sa;pwd=123456;"/>
  </connectionStrings>







  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQLite是一个轻型的关系型数据库管理系统,它的数据型主要包括:数值型(integer, real, boolean)、字符串型(text, blob)。 与其它数据库相比,SQLite的一个显著特点是它只有一个文件,并且没有单独的服务器进程。因此,SQLite比较适合于嵌入式系统、手机和平板电脑等小型设备上使用。 要使用SQLiteOpenHelper创建一个student表格,你需要创建一个SQLiteOpenHelper的子,并实现onCreate()和onUpgrade()方法。在onCreate()方法中,你可以使用execSQL()方法执行一条SQL语句来创建表格。 例如,下面的代码片段展示了如何创建一个student表格: ``` public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE student (id INTEGER PRIMARY KEY, name TEXT, sex INTEGER, phone TEXT)"; db.execSQL(sql); } ``` 在onUpgrade()方法中,你可以执行用于更新表格结构的SQL语句。例如,你可以在该方法中添加一列或删除一列。 在使用SQLiteOpenHelper创建表格之前,你还需要在你的应用程序中创建一个SQLiteDatabase对象,并调用getWritableDatabase()方法或getReadableDatabase()方法打开数据库。 ### 回答2: SQLite是一种轻量级的嵌入式数据库,它支持的数据型包括整型(INTEGER)、浮点型(REAL)、文本型(TEXT)、二进制型(BLOB)以及空值(NULL)。 与其他数据库相比,SQLite具有以下几个区别: 1. 无服务器模式:SQLite是一种无服务器数据库,数据以文件的形式存储在本地设备上,而无需额外的服务器进程。 2. 零配置:SQLite无需进行复杂的安装和配置。只需在应用程序中添加相应的库文件即可。 3. 单用户:SQLite适用于单用户应用程序,不支持多用户同时访问相同的数据库文件。 4. 事务支持:SQLite使用原子提交的方式支持事务处理,确保数据的完整性。 5. 嵌入式:SQLite内置在应用程序中,可以直接访问,而无需通过网络或其他方式连接到数据库。 要创建一个名为"student"的表格,可以使用SQLiteOpenHelper。下面是一个简单的示例代码: ```java public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydb"; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME = "student"; private static final String COLUMN_ID = "id"; private static final String COLUMN_NAME = "name"; private static final String COLUMN_SEX = "sex"; private static final String COLUMN_PHONE = "phone"; public MyDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTableQuery = "CREATE TABLE " + TABLE_NAME + "(" + COLUMN_ID + " INTEGER PRIMARY KEY," + COLUMN_NAME + " TEXT," + COLUMN_SEX + " TEXT," + COLUMN_PHONE + " TEXT);"; db.execSQL(createTableQuery); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 升级数据库时执行的操作,暂不处理 } } ``` 在应用程序的代码中,可以使用以下方式创建和访问数据库表: ```java MyDatabaseHelper dbHelper = new MyDatabaseHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ``` 以上是简单地创建了一个名为"student"的表格,并定义了id、name、sex和phone这四个字段的数据型。当应用程序需要使用数据库时,可以创建一个MyDatabaseHelper对象,然后通过该对象获取可读写的数据库对象,即可实现对数据库的操作。 ### 回答3: SQLite是一种轻量级的关系型数据库,它在移动设备开发中被广泛使用。SQLite中常见的数据型有NULL、INTEGER、REAL、TEXT和BLOB。 1. NULL:表示数据为空值。 2. INTEGER:表示整数型,包括正整数和负整数。 3. REAL:表示浮点数型,包括单精度浮点数和双精度浮点数。 4. TEXT:表示文本型,存储字符串数据。 5. BLOB:表示二进制数据。 与其他数据库相比,SQLite有以下几点区别: 1. SQLite是嵌入式数据库,不需要独立的服务进程,数据以文件的方式存储在设备上。 2. SQLite的性能较高,适用于少量数据的存储和查询。 3. SQLite没有用户管理功能,无法设置用户权限和访问控制。 4. SQLite没有独立的数据型,数据型不需要事先定义,根据插入的数据自动确定型。 下面是一个使用SQLiteOpenHelper创建一个名为student的表格的示例: ```java public class MyDatabaseHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "mydatabase.db"; public MyDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTableQuery = "CREATE TABLE student (id INTEGER PRIMARY KEY, name TEXT, sex TEXT, phone TEXT)"; db.execSQL(createTableQuery); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 数据库版本更新时的操作,略 } } ``` 以上代码中,首先定义了一个继承自SQLiteOpenHelper的自定义MyDatabaseHelper。在MyDatabaseHelper的onCreate方法中,我们使用db.execSQL方法执行了一条创建表格的SQL语句。通过创建MyDatabaseHelper的实例,调用getWritableDatabase方法即可创建数据库和表格。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值