zoukankan      html  css  js  c++  java
  • 操作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();
    2  cmd.方法();

      -> 常用的三个方法   

    1 ExecuteNonQuery()   专门执行非查询语句(增、删、改等),返回受影响行数
    2 ExecuteScalar()     执行查询,返回的是结果中第一行第一列的数据(object)  
    3 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);

     

  • 相关阅读:
    点云处理算法核心-八叉树
    点云平台之cloudCompare开发三
    点云法向量估计方法
    PCL源码编译
    PCL裁剪之多边形裁剪
    点云平台PCLvisualization多边形裁剪方法初探
    点云合并pcl重载“+”
    点云平台之CloudCompare开发二
    点云平台之QtitanRibbon
    神舟电脑 战神ZX6-CT5A2 键盘失灵
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/3205696.html
Copyright © 2011-2022 走看看