一.使用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();