手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

C#连接数据库编程

时间:2024-10-22 09:30:42

使用C#进行编程开发,难免会遇到数据库访问的问题,下面介绍一下使用C#连接常见数据库的方法以及代码,希望能够帮助到大家,也希望大家多多支持!

工具/原料

Visual Studio 2010

C#连接Access

1、Access数据库一般后缀名是.mdb文件,使用C#读取比较方便,在读取之前先得添加额外的命名空间,如下所示:using System.Data.OleDb;

2、下面是连接Access数倌栗受绽据库的代码片段,如下所示:////定义容器数组List<string> UserName 租涫疼迟= new List<string>();List<string> Pwd = new List<string>();List<string> Pwd_View = new List<string>();List<string> Email = new List<string>();//连接Access数据库string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";strConnection += @"Data Source=C:\qq.mdb";OleDbConnection objConnection = new OleDbConnection(strConnection); //打开数据库objConnection.Open(); //查询数据库OleDbCommand sqlcmd = new OleDbCommand(@"select * from CFCount_User", objConnection); //执行查询语句OleDbDataReader reader = sqlcmd.ExecuteReader();//HasRows属性显示OleDbDataReader是否包含数据if (reader.HasRows){ string strline; //读取下一条记录并将内容存储在容器数组内 while (reader.Read()) { //添加文件ID号 strline = reader["UserName"].ToString(); MessageBox.Show(strline); UserName.Add(strline); //添加文件标题 strline = reader["Pwd"].ToString(); Pwd.Add(strline); //添加文件下载地址 strline = reader["Pwd_View"].ToString(); Pwd_View.Add(strline); //添加文件名 strline = reader["Email"].ToString(); Email.Add(strline); }}//关闭读数据库reader.Close();//关闭数据库连接objConnection.Close();

3、说明: 上述代码中的strConnection这个变量里存放的是连接数据库所需要的连接字符串,它指定了要使用的数据提供者和要使用的数据源。 "Provider=Microsoft.Jet.OleDb.4.0;"是指数据提供者,这里使用的是MicrosoftJet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access的数据库连接的。 "Data Source=C:\qq.mdb"是指明数据源的位置,它的标准形式是"Data Source=MyDrive:MyPath\MyFile.MDB"。 "="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符。 如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:strConnection ="Data Source=";strConnection +=MapPath("qq.mdb"); 要注意连接字符串中的参数之间要用分号来分隔。 "OleDbConnection objConnection=new OleDbConnection(strConnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作都要和这个对象打交道。 "objConnection.Open();"这用来打开数据库连接。

C#连接SQL Server

1、使用C#连接SQL Server数据库时,需要添加额外命名空间,如下所示:using System.IO;using System.Data.SqlClient;

2、下面是连接SQL Ser箪滹埘麽ver数据库的示例代码,如下所示://连接数据库SqlConnection conn = new SqlConnect足毂忍珩ion("Data Source=localhost; Integrated Security=SSPI; Initial Catalog=pubs; DataBase=数据库名");//打开数据库conn.Open();//判断数据库是否已经打开//if (conn.State == ConnectionState.Open)//{// MessageBox.Show("Open SQL DataBase Success!!!");//}//设置总共的记录数int totalcount = 0;//查询语句的定义string Dcmd = "select * from dbo.cdsgus";//设置DtataTable存储DataTable dt_one;//查询语句dt_one = SelectData(Dcmd);//查看一共有多少条记录for (int i = 0; i < dt_one.Rows.Count; i++)totalcount = totalcount + 1;//判断记录的个数if (totalcount > 0){ //显示前1000条信息 DataTable ds; if (totalcount < 1000) ds = DtSelectColumn(0, totalcount, dt_one); else ds = DtSelectColumn(0, PageNum, dt_one); //往listview中写数据 Write_listview(ds);}else MessageBox.Show("没有符合条件的选项!!!");//释放数据库conn.Close();conn.Dispose();在上面代码中使用到的三个子函数分别是SelectData函数、DtSelectColumn函数和Write_listview函数,下面是这三个子函数的代码,如下所示://SelectData函数数据采集public DataTable SelectData(string Dcmd){ //创建SqlCommand SqlCommand myCommand = new SqlCommand(Dcmd, conn); //设置连接的时间 myCommand.CommandTimeout = 80000; //创建SqlDataAdapter SqlDataAdapter myDataAdapter = new SqlDataAdapter(); //为SqlDataAdapter对象绑定所要执行的SqlCommand对象 myDataAdapter.SelectCommand = myCommand; //创建DataTable DataTable myDataTable = new DataTable(); //填充表 myDataAdapter.Fill(myDataTable); myDataAdapter.Dispose(); return myDataTable;}//DtSelectColumn函数查询DataTable里的某一段的数据public static DataTable DtSelectColumn(int TopItem, int LastItem, DataTable oDT){ if (oDT.Rows.Count < LastItem) return oDT; DataTable NewTable = oDT.Clone(); DataRow[] rows = oDT.Select("1=1"); for (int i = TopItem; i < LastItem; i++) { NewTable.ImportRow((DataRow)rows[i]); } return NewTable;}// Write_listview函数用于完成向listview添加信息private void Write_listview(DataTable dt){ ListViewItem li = null; for (int i = 0; i < dt.Rows.Count; i++) { li = new ListViewItem(dt.Rows[i]["ID"].ToString()); li.SubItems.Add(dt.Rows[i]["Name"].ToString()); li.SubItems.Add(dt.Rows[i]["Gender"].ToString()); ListView.Items.Add(li); }}说明:上述代码中对SQL Server数据库的链接字符串设置是针对本地数据库的,若是远程数据库的链接字符串设置,使用下面的语句,如下所示:string strConnection +="user id=sa;password=123456;";strConnection +="DataBase=数据库名; Data Source=数据库服务器地址;";strConnection +="Connect Timeout=30";连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别,只是改变了Connection对象和连接字符串中的不同参数。

C#连接Oracle

1、使用C#连接Oracle数据库需要添加额外的命名空间,如下所示:using System.Data.OracleClient;下面是连接Oracle数据库的示例代码,如下所示://写连接串string ConnectionString="Data Source=sky;user=system;password=manager;";//创建一个新连接OracleConnection conn=new OracleConnection(ConnectionString);try{  conn.Open();OracleCommand cmd=conn.CreateCommand();//在这儿写sql语句cmd.CommandText="select * from MyTable";//创建一个OracleDateReader对象OracleDataReader odr=cmd.ExecuteReader();//读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了  while(odr.Read()){//输出字段1,这个数是字段索引,具体怎么使用字段名还有待研究    Response.Write(odr.GetOracleString(1).ToString());  }  odr.Close();}catch(Exception ee){  Response.Write(ee.Message); //如果有错误,输出错误信息}finally{  conn.Close(); //关闭连接}

C#连接MySQL

1、对于MySQL数据库的连接,需要额外的添加引用MySql.Data.dll文件,引用的方式就是在右键点击项目,选择”添加引用”,如下所示:

C#连接数据库编程

2、点击”浏览”项,如下所示:

C#连接数据库编程

3、选择”MySql.Data.dll”,外部dll引用完毕,在程序代码中添加下面的两条命名空间,即:using MySql.Data;using MySql.Data.MySqlClient;下面是连接MySQL数据库的代码,如下所示://连接MySQL数据库string constr = "server=localhost;User Id=root;password=123456;CharSet=gb2312;Database=csdn";//下面使用MySql Connector/net提供的专用对象MySqlConnection mycon = new MySqlConnection(constr);//打开数据库mycon.Open();//查询数据库MySqlCommand mycmd = new MySqlCommand("select * from file", mycon);MySqlDataReader myreader = mycmd.ExecuteReader();//HasRows属性显示OleDbDataReader是否包含数据if (myreader.HasRows){ string strline;//读取记录到ListView控件内 while (myreader.Read()) { //添加到空间里 ListViewItem li = new ListViewItem(); //添加ID号 strline = myreader["ID"].ToString(); li.Text = strline; //添加文件的ID strline = myreader["FileID"].ToString(); li.SubItems.Add(strline); //添加文件的标题title strline = myreader["Title"].ToString(); li.SubItems.Add(strline); //添加到listview控件里 MySqlList.Items.Add(li); }}//关闭数据库连接myreader.Close();//关闭数据库mycon.Close();

C#连接SQLite

1、使用C#连接SQLite的时候,通过Add References引用SQLite ADO .NET安装目录的bin目录下的System.Data.SQLite.DLL文件,该文件是安装了SQLite for net4驱动安装文件才会出现的,该驱动文件分为32位版本和64位版本,如下所示:

C#连接数据库编程

2、安装相应版本之后,打开安装目录,会发现该文件,如下所示:

C#连接数据库编程

3、创建C#的工程的时候,需要在引用里添加上该项,如下所示:

C#连接数据库编程
C#连接数据库编程

4、添加上该引用之后,在程序代码里面加上下面的命名空间:using System.Data.SQLite;

5、下面是连接SQLite数倌栗受绽据库的代码,如下所示://创建一个密码为空的SQLite数据库SQLiteConnection.Cre锾攒揉敫ateFile("c:\\test1.db");//创建一个密码为password的空的SQLite数据库SQLiteConnection.CreateFile("c:\\test2.db");SQLiteConnection cnn = new SQLiteConnection("Data Source=C:\\test2.db");cnn.Open();cnn.ChangePassword("password");//连接数据库//使用SQLiteConnection来连接数据库SQLiteConnection conn = new SQLiteConnection("Data Source=C:\\test.db");//如果数据库加了密需要设置密码,没有下面的代码就不需要conn.SetPassword("password");//打开连接conn.Open();//或者使用SQLiteConnectionStringBuilder进行数据库的连接//构建连接字符串SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();//创建数据库的位置builder.DataSource = @"c:\\test.db";//设置数据库的密码builder.Password = @"password";SQLiteConnection con = new SQLiteConnection(builder.ConnectionString);//打开连接con.Open();//数据库的操作//创建表SQLiteCommand cmd = conn.CreateCommand();cmd.CommandText = "create table users(email varchar(20),name varchar(20))";cmd.Connection = conn;cmd.ExecuteNonQuery();//INSERT插入数据cmd.CommandText = "INSERT INTO users VALUES ('[email protected]','user01')";cmd.ExecuteNonQuery();//UPDATE修改数据cmd.CommandText = "UPDATE users SET name = 'Codelicious' WHERE name = \"user01\"";cmd.ExecuteNonQuery();//delete删除语句cmd.CommandText = "DELETE from users WHERE name = \"Codelicious\"";cmd.ExecuteNonQuery();//删除数据库的表cmd.CommandText = "drop table users";cmd.ExecuteNonQuery();//select查询数据库cmd.CommandText = "SELECT email,name FROM users";SQLiteDataReader reader = cmd.ExecuteReader();if (reader.HasRows){ while (reader.Read()) { MessageBox.Show("email: " + reader.GetString(0)); MessageBox.Show("name: " + reader.GetString(1)); }}//关闭连接conn.Close();

© 手抄报圈