c#操作sql server数据库(ADO.net基础)

时间:2021-07-28 13:36:45

ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤:

第一,使用SqlConnection对象连接数据库;
第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;
第三,对SQL或存储过程执行后返回的“结果”进行操作。


我们一步步来分析!


1.SqlConnection连接数据库


命名空间:System.Data.SqlClient.SqlConnection;

返回数据库连接对象,参数字符串。实例化“连接对象”,并打开连接

      
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();

 连接字符串中,Date source为目标sql server实例名称,如Date Source=.\sqlexpress,其中 .(点)表示本地服务器,\(斜线)后面表示连接数据库的实例名。其中.(点)可以用(local)代替。 (local)\sqlexpress

      Integrated Security参数 ,当设置Integrated Security为 True 的时候,连接语句前面的 UserID, PW 是不起作用的,即采用windows身份验证模式。 只有设置为 False 或省略该项的时候,才按照 UserID, PW 来连接。

using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;
AttachDbFilename=E:\HUST-CODE\ADO_NETPra\ADO_NETPra\Database1.mdf;Integrated Security=True"))
{
//打开数据库
conn.Open();

Console.WriteLine("connect opened.");

//显示当前数据库的连接状况
Console.WriteLine("connection properties:");

Console.WriteLine("\tConnection String: {0}",conn.ConnectionString);
Console.WriteLine("\tDataBase: {0}",conn.Database);
Console.WriteLine("\tDataSource: {0}",conn.DataSource);
Console.WriteLine("\tServer Version: {0}",conn.ServerVersion);
Console.WriteLine("\tState: {0}",conn.State);

}
Console.WriteLine("成功!");
Console.ReadKey();


c#操作sql server数据库(ADO.net基础)

2.SqlCommand连接数据库


命名空间:System.Data.SqlClient.SqlCommand;


 创建SqlCommand连接的方式有两种:


第一种:

SqlCommand cmd = new SqlCommand( );

cmd.connection = conn;


第二种

SqlCommand cmd = conn.creatCommand;


CommandText属性(可读可写),用来保存要执行的SQL语句,可以直接给该属性赋值,也可以在命令构造时指定该属性的值!

cmd.CommandText = @"select * from  DateBase1";

       string sql =@"select * from DateBase1";

       SqlCommand cmd = new SqlCommand(sql, conn);


:在执行Command 对象前,必须同时设置其Connection 和 CommandText的值.


3.执行操作并返回结果

       命令提供了几种不同的方法来执行SQL语句,差别在于SQL代码的期望。比如查询能返回多行数据,而INSERT.UPDATE 和 DELETE 语句则不返回数据。可以根据期望返回的结果决定使用哪种方法。

c#操作sql server数据库(ADO.net基础)

SqlDataReader对象

命名空间:System.Data.SqlClient.SqlDataReader;


SqlDataReader对象提供只读单向数据的功能,单向:只能依次读取下一条数据;只读:DataReader中的数据是只

读的,不能修改;相对地DataSet中的数据可以任意读取和修改. 使用完毕后,需要关闭读取器

它有一个很重要的方法,是Read(),返回值是个布尔值,作用是前进到下一条数据,一条条的返回数据,当布尔

值为真时执行,为假时跳出。

:读取数据时,我们可以使用序数索引器,也可以使用列名索引器。


SqlDataReader rdr = cmd.ExecuteReader();

rdr[0] or rdr["Name"]


使用类型访问器速度是最快的,但需要事先知道返回值的类型值!