您的位置:首页 - 教程 - .NET - 正文
.NET操作sqlserver数据库常用的三个方法

 1、 ADO.NET

   -> 连接字符串,常用的两种方式:

      server=计算机名或ip\实例名;database=数据库名;uid=sa;pwd=密码;

      server=计算机名或ip\实例名;database=数据库名;integrated security=true;

   -> 常用的类库

      SqlConnection 连接数据库用

      SqlCommand      执行SQL语句

      SqlDataReader 读取的对象(此种读取数据的方式有点像StreamReader)

      SqlAdapter    将数据库中的数据放入DataSet

      DataSet       内存级别的离线数据库(有点像FileStream.Read)

对比模型

   -> 连接数据库的步骤

      -> 写连接字符串

      -> 创建连接对象,使用连接字符串

      -> Open,打开数据库

      -> 关闭释放数据库,可以使用using

2、执行SQL语句

   -> 使用SqlCommand对象

   -> 步骤:

      -> 首先创建SQL语句字符串(sql)与连接通道SqlConnection(conn)    

1 string sql = "insert into tbl(id, name) values(1, '123');"
2 SqlConnection conn = new SqlConnection(@"server=计算机名或ip\实例名;database=数据库名;uid=sa;pwd=密码;");

 

    -> 创建SqlCommand对象,将sql与conn交给它(通过构造函数或属性)

 SqlCommand cmd = new SqlCommand(sql, conn);

 

    -> 在Open的情况下,调用方法(SqlCommand对象的方法)      

1 conn.Open();
 cmd.方法();

  -> 常用的三个方法   

1 ExecuteNonQuery()   专门执行非查询语句(增、删、改等),返回受影响行数
ExecuteScalar()     执行查询,返回的是结果中第一行第一列的数据(object)  
ExecuteReader()     专门执行查询,可以获得多行多列的数据

3、 先创建一个表,插入数据

注意问题

      -> sql语句如果在SSMS中执行没有问题在ADO.Net一般不会出现问题

      -> 关于主键和自动增长

      -> 连接字符串数据库的名字

      -> 关于约束

   异常处理

1 try
 2  {
 3         // 可能出现异常的代码
 4  }
 5 
 6  catch(Exception ex)
 7 
 8  {
 9         // 出现异常之后的代码
10  }
11 
12  finally
13   {
14         // 用来关闭连接
15  }

4、 ExecuteScalar()

     -> 读取数据,获取第一行与第一列

     -> 执行中除了SQL语句和执行方法不同流程都一样

5、-> 将SQL语句中的参数拼接修改一下

   -> 凡是要用到参数的地方,都将这个变数,写成一个变量

   -> 使用的时候为这个变量赋值即可

   -> 实现步骤

      -> 写SQL语句的时候,用"@别名"代替挖坑的地方

1  select COUNT(*) from tblLogin where logUid='{0}' and logPwd='{1}';容易sql注入漏洞攻击
2  select COUNT(*) from tblLogin where logUid=@logUid and logPwd=@logPwd;

 

  -> 在ADO.Net中执行SQL语句前(cmd.方法()调用前)

      -> 创建一个对象,SqlParameter

1 SqlParameter p = new SqlParameter(参数的别名, 参数的值);
2 SqlParameter p1 = new SqlParameter("@logUid", txtUid.Text.Trim());
3 SqlParameter p2 = new SqlParameter("@logPwd", txtPwd.Text);

    -> 将参数加到cmd对象中        

cmd.Parameters.Add(参数对象);
cmd.Parameters.Add(p1);

 

 


评论: