目前市面上主要使用的数据库有MySQL,sql server,Access,甲骨文等,利用C#操作数据库的技术为ADO.net对象访问模型。
ADO.net对象模型中主要有5个数据访问对象:Connection、Command、DataSet、DataAdapter和DataReader
对象名称 | 功能 |
Connection | 数据连接Connection对象用于创建前台应用程序和后台数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。 |
Command | 数据操作命令Command对象用来对数据库进行查询、新增、修改、删除数据等操作。Command对象的执行必须建立在Connection对象上。 |
Dataset | 数据集DataSet是ADO.net模型中最重要的对象,是一个内存数据库,用于存放从后台数据库中读取的数据和前台操作的结果数据,它是多张数据表的集合。 |
DataAdapter | 数据适配器DataAdapter是后台数据库和DataSet对象之间的桥。它是根据Command命令来实现数据库的读和写操作。 |
DataReader | 对数据库只做循序的读取操作时,可以使用只读对象DataReader。DATa Reader对象一次只读取数据表中或者是查询结果集中的一条记录,这样通过循环可以依次读取数据源的所有记录。 |
1.Connection用法:
string M_str_sqlcon = "server=localhost;user id=root;password=987654123;database=test"; //根据自己的设置
MySqlConnection myCon = new MySqlConnection(M_str_sqlcon);//建立适配器
myCon.Open();//打开
myCon.Close();//关闭数据库
myCon.Dispose();//释放适配器
2.Command用法:
string str= "UPDATE db1 SET pictureX='"+ sou +"' WHERE locationID='N"+ i +"'"; //SQL语句
MySqlCommand cmd = new MySqlCommand(str,myCon); //建立指令
cmd.ExecuteNonQuery();//执行指令
其中最主要的四种指令为 增 查 删 改
增加数据:
INSERT INTO 表名[属性名列表] VALUES(属性值表)
例: INSERT INTO ScoreList VALUES("08001","数据库技术",90)
查找数据:
SELECT 属性名/表达式 FROM 数据表名
[WHERE 查询条件] [GROUP BY 属性名]
[HAVING 分组条件] [ORDER BY 属性名/表达式[ASC/DESC]]
例: SELECT 姓名/* FROM Students WHERE 专业=“计算机”
例: SELECT 姓名,int(avg(成绩)) as 平均成绩
FROM Student,ScoreList
WHERE Students.学号 =ScoreList. 学号
GROUP BY ScoreList.学号,姓名
ORDER BY avg(成绩) DESC;//查询每位同学的课程平均成绩并从高到低排列
删除数据:
DELETE FROM 表名 WHERE 条件
例: DELETE FROM ScoreList WHERE 学号=“08001”
更新数据:
UPDATE 表名 SET 属性名=更新值 WHERE 更新条件
例: UPDATE 表名 SET 属性名=更新值 WHERE 更新条件
3.DataSet用法
DataSet.Tables("数据表名").Rows(i).Item(j)
4.数据适配器DataAdapter的读/写操作
(1)DataAdapter对象的读操作是由其Fill方法完成的
mydataset.Fill ( Dataset mydataset,"ScoreList")
(2)DataAdapter对象的写操作是由其Update完成的
mydataset.Update()
5.DataReader用法
MySqlCommand cmd = myCon.CreateCommand();
cmd.CommandText = "select * from db1";
MySqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())//一定要写
{
ListViewItem it = new ListViewItem();
it.Text=dr["locationID"].ToString();
it.SubItems.Add(dr["ocrName"].ToString());
it.SubItems.Add(dr["gapRight"].ToString());
it.SubItems.Add(dr["gapDown"].ToString());
it.SubItems.Add(dr["pictureX"].ToString());
it.SubItems.Add(dr["pictureY"].ToString());
listView1.Items.Add(it);
}
MySqlCommand cmd = myCon.CreateCommand();
cmd.CommandText = "SELECT locationID FROM db1 WHERE pictureX='" + pic_X + "'and pictureY='" + pic_Y + "'";
MySqlDataReader dr = cmd.ExecuteReader();
string ostr = "";
if (dr.Read()){
ostr = dr["locationID"].ToString();
}