Ado.Net连接数据库的两种方式
一.使用Command和DataReader对象:
(1).首先连接数据库有两种模式:
1.混合连接模式 该模式需要输入登录名和密码
代码如下:
string Myconnection ="server=服务器名称(如果是本地也可以用.来代替);database=连接的数据库名称;";uid=登录名;pwd=密码";
SqlConnection conn=new SqlConnection(Myconnection);
2.Window连接模式 该模式必须将Trusted_connection=true
string Myconnection="server=服务器名称;database=连接的数据库名称;Trusted_connection=true";
SqlConnection conn=new SqlConnection(Myconnection);
(2).调用Connection对象的Open方法打开连接
(3).连接数据源(指的是连接到具体的数据库文件中)有两种方式
1.通过Command对象和DataReader对象
2.通过DataSet对象和DataAdapter对象(适用于经常更改数据库)
(4).从数据源读取数据
(5).调用Command对象的Close方法关闭连接
二.下面是两种连接数据源方法的代码:
(Command对象和DataReader对象)此方法需要引用using System.Data.SqlClient命名空间
string StrSql = "server=.;database=BookDB;trusted_connection=true"; SqlConnection conn = new SqlConnection(StrSql); SqlCommand com = new SqlCommand();
//封装连接数据源的方法 ADOCRUDByCommend(conn, com);
//使用try catch finally catch可以将Try代码块的错误捕捉,而且使用该方法的好处是try中的代码无论是否出错都可以编译,如果代码出错catch将会显示出错,最后执行finally中的语句。
try { conn.Open();
//数据库中的CRUD(增删查改)操作语句 string Sqlstr = "select * from Table1"; //string Sqlstr = "insert into Table1 values(05,005,0005,0005)"; //string Sqlstr = "delete from Table1 where date=01"; //string Sqlstr = "update Table1 set English=00001 where English=1 "; com.Connection = conn; com.CommandText = Sqlstr;
//实例化一个读取数据的对象(由于DataReader是抽象类 不能直接实例化,因此要通过Command对象的ExcuteReader方法返回DataReader实例) SqlDataReader Mydatrder = com.ExecuteReader();
//Read()方法是用来移动记录指针到下一行 while (Mydatrder.Read()) { string date = Mydatrder["date"].ToString(); string china = Mydatrder["china"].ToString(); string math = Mydatrder["math"].ToString(); string English = Mydatrder["English"].ToString();
//将查询结果输出 Console.WriteLine("{0},{1},{2},{3}", date, china, math, English); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); Console.ReadKey(); }
(DataSet对象和DataAdapter对象)此方法需要引用using System.Data.SqlClient和 using System.Data命名空间
string Cstring = "server=.;database=BookDB;trusted_connection=true"; //定义Myconn对象连接数据库 SqlConnection Myconn = new SqlConnection(Cstring);
//数据库中的CRUD语句 //string Sql = "select * from Table1 where date=01"; //string Sql = "insert into Table1 values(06,006,0006,00006)"; //string Sql = "update Table1 set date=07 where date=06"; string Sql = "delete Table1 where date=07"; //定义DataSet对象存储数据 System.Data.DataSet MyDataSet = new System.Data.DataSet(); SqlDataAdapter MyDataAdapter = new SqlDataAdapter(Sql,Myconn); //调用Fill()方法将数据填充到DataSet中 MyDataAdapter.Fill(MyDataSet); //调用Connection中open()打开连接 Myconn.Open();
//读取符合条件的数据 foreach (DataTable table in MyDataSet.Tables) { foreach (DataRow row in table.Rows) { foreach (object field in row.ItemArray) { Console.Write(field); } //相应的行处理 Console.WriteLine(row); } //相应的表处理 Console.WriteLine(table); } //Console.WriteLine(MyDataSet.Tables[0].Rows[0][2]); Console.ReadKey(); Myconn.Close();