c#的数据库操作
数据库作为编程中必不可少的一部分,有着很重要的使用价值和学习意义。前段时间去宁波一个事业单位笔试、面试,上机部分考的就是一个操作数据的题目,给出了一个字段,让在Access结合c#实现添加、删除的功能,很遗憾的是,我之前虽然做过相关方面的项目,但是没怎么去注重这些小的细节,对结果也不报很大的希望了...
好,废话少说,回归正题——c#操作数据库(这里主要讲Access,Sql server)主要有两种方式:OleDb和SqlClient方式,两种方式对应的代表就是Access和SqlClient,之间的关系图如下所示:
从类的命名和引用空间的命名来讲,二者的相似度还是很高的,主要差别在一些小细节上,如:连接字符串。
其中SQL Server的连接数据库字符串为:“Server=(Local)\sqlexpress;Integrated Security=True;Database=northwind”;其中,Local代表主机名,northwind代表数据库名,这里没有要求安全设置,直接连就ok了。
Access的数据库连接字符串为:“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=...”,其中,我使用的Access版本是2010的,2003版本的跟这个还是有差别的,具体大家可以到网上搜,这里也没有安全设置,直接连就ok了。
由于我机子上没有安装SQL Server,所以我还是拿Access来做示例吧:
首先,将Access所在路径作为参数传入类AccessOperate中:
1 public AccessOperate(string pathUrl) 2 { 3 dbCmd = new OleDbCommand(); 4 //连接数据库 5 StringBuilder stringBuilder=new StringBuilder(); 6 stringBuilder.Append(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="); 7 stringBuilder.Append(pathUrl + ";"); //+"Persist Security Info=False;" 8 dbConn = new OleDbConnection(stringBuilder.ToString()); 9 }
打开数据库:
1 public bool OpenDB() 2 { 3 dbConn.Open(); 4 if (dbConn.State==ConnectionState.Open) 5 { 6 return true; 7 } 8 return false; 9 }
用来测试的数据库不大,把表中所有的数据都取出,存放于一个DataSet中:
1 public DataSet get_allItems() 2 { 3 DataSet ds = new DataSet(); 4 dbCmd=dbConn.CreateCommand(); 5 dbCmd.CommandText = "select * from XS_Table"; 6 OleDbDataAdapter dataAdapter= new OleDbDataAdapter(dbCmd); 7 dataAdapter.Fill(ds); 8 9 dataAdapter.Dispose(); 10 return ds; 11 }
如需显示可借助于DataGridView进行,这里就不赘述了。