在工作中经常用到数据库,可以进行一些操作,但是对于操作的理解不是很清楚,正好这次的工作又要用到数据库,完成之余对数据库进行一个简单易懂的总结,加深下理解。下面按照一些简单的操作来进行具体的小结。(代码只是简单的操作,没有考虑变量是否为null等情况)
既然要使用到数据库,首先要做的就是跟数据库之间的连接,在进行每种操作的时候都应该是先进行连接,然后再进行其他操作:
//提供数据库的来源
pubic connectionString = "Data Source=" + "DataBase\\db" + "";
//建立连接对象
SQLiteConnection conn = new SQLiteConnection(connectionString)
//打开连接
conn.open();
打开连接之后,我们就要根据sql语句来进行相关的读取,修改,删除数据库数据等操作了,sql语句具体的一些用法在下一篇博客中会进行更详细的总结。
1. 根据指定sql语句获取SQLiteDataReader阅读器,该阅读器使用while(read())的操作,可以进行便利,具体的读取过程跟指针类似,每读完一条数据,会指向下一组数据,该阅读器效率较高,但是只能单向读取,并且是只读。
//根据连接对象和sql语句,创建一个SQL命令
SQLiteCommand cmd = new SQLiteCommand(sql, conn)
//根据创建的命令来满足传入的sql语句的阅读器
SQLiteDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
2. 当需要查询某个位置的某个数据的时候,可以使用下面的方式:
SQLiteCommand cmd = new SQLiteCommand(sql,conn)
//该方法返回的是根据sql语句获得查询结果的第一行一列的值,使用的时候,使用合适的sql语句,就可以获取某一个具体的数值了。如果行和列都不存在,会返回null,如果列不存在,行存在,则返回DBNull
Object obj = cmd.ExecuteScalar();
3. 我们获取数据库的数据,不仅仅需要进行读取,有时还要进一步的来操作获取到的数据,这时候就需要用SQLiteAdapter来填充。SQLiteAdapter就是一个适配器,简单通俗点来说:不可能直接把数据库中的数据拿来用的,这时候要读懂数据库中的数据,就要一个工具,来将数据库中的数据让你的软件能够读懂,这样才能进行操作。对于不同的数据源,就会有不同的适配器。在填充的时候会出现一个模糊:DataTable和DataSet的区别,DataTable就是一个表,而DataSet相当于一个数据库,里面有很多个表,2个都是容器,具体的使用例子如下:
//同样根据连接和sql语句创建一个适配器对象
SQLiteDataAdapter drp = new SQLiteDataAdapter(sql, conn)
DataTable dt= new DataTable();
DataSet ds = new DataSet();
drp.Fill(dt);
drp.Fill(ds);
4.下面的方法可以获取执行sql语句的数据库操作之后,返回数据库数据影响数,这边补充一个可以传入参数数组
//假设根据数据库里面的内容,传入一些参数,根据正确的参数,可以向数据库中的sql语句中指定的部分进行添加修改操作
params SQLiteParameter[] cmdParams;
foreach(var Parameter in cmdParms)
{
//这边要对ParameterDirection的值进行判断
cmd.Parameters.Add(Parameter);
}
//在命令中添加完成参数后,执行sql语句操作,rows就是返回的数据库受影响的数据数目
int rows = cmd.ExecuteNonQuery();
目前工作中用过的主要的操作也就是上面几个,包含了读取,修改。具体的sql语句如何来写下一篇会进行小结。