zoukankan      html  css  js  c++  java
  • 数据库操作

     ADO的结构图如下:

       connection       commandText

    sql---->sqlConnection--->sqlCammand.ExecuteNonQuery():增,删,改(返回一个值)受影响的行数。

                                                                   .ExecuteScalar():查询,(返回查询结果的第一行第一列的值)。

                                                                   .ExecuteReader()----->SqlDataReader.(数据阅读器),查询(不能增删改)

    sql---->sqlConnection--->sqlCammand --->  SqlDataAdapter .InsertCommand    增       |

                                                  (数据适配器) SqlDataAdapter .DeleteCommand    删      |

                                                                             SqlDataAdapter . UpdateCommand    改     |    fill ()---->DataSet(数据集)

                                                                               SqlDataAdapter . SelectCommand     查     |

     示例说明:

     
    
     SqlConnection myConn;    //用于连接数据库
        SqlCommand myCmd;        //用于执行Sql语句
        DataSet ds;              //数据集
        SqlDataAdapter adapt;    //填充数据集
    
    
     public DbClass()
     {
     }
        /// <summary>
        /// 连接数据库
        /// </summary>
        /// <returns>返回SqlConnection对象</returns>
        public SqlConnection GetConnection()
        {
          
    
            string myStr = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
             myConn = new SqlConnection(myStr );
             return myConn;
        }
    
        /// <summary>
        /// 更新数据库
        /// </summary>
        /// <param name="strSql">sqlStr执行的SQL语句</param>
        public void ExecNonQuery(string strSql)       //主要用于执行不需返回值的操作:更新,插入,删除
        {
            
            try
            {
                myConn = GetConnection();//与数据库连接
                myCmd = new SqlCommand();//初始化SqlCommand类对象
                myCmd.Connection = myConn;
    
                myCmd.CommandText = strSql;
                if (myCmd.Connection.State != ConnectionState.Open)
                {
                    myCmd.Connection.Open();//打开与数据库的连接
                }
                myCmd.ExecuteNonQuery();//执行Sql操作,并返回受影响的行数
    
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
    
            }
            finally
            {
                if (myCmd.Connection.State == ConnectionState.Open)
                {//断开连接,释放资源
                    myCmd.Connection.Close();
                    myConn.Dispose();
                    myCmd.Dispose();
    
                }
            }
        }
        /// <summary>
        /// 返回一个值
        /// </summary>
        /// <param name="strSql">sqlStr执行的SQL语句</param>
        /// <returns>返回获取的值</returns>
        public string ExecScalar(string strSql)  //        有返回值,主要用于查询
        {
         
            try
            {
                myConn = GetConnection();//与数据库连接
                myCmd = new SqlCommand();//初始化SqlCommand类对象
                myCmd.Connection = myConn;
    
                myCmd.CommandText = strSql;
    
                if (myCmd.Connection.State != ConnectionState.Open)
                {
                    myCmd.Connection.Open();//打开与数据库的连接
                }
                //使用SqlCommand对象的ExecuteScalar方法返回第一行第一列的值
                strSql=Convert.ToString(myCmd.ExecuteScalar());
                return strSql ;
    
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
    
            }
            finally
            {
                if (myCmd.Connection.State == ConnectionState.Open)
                {//断开连接,释放资源
                    myConn.Dispose();
                    myCmd.Connection.Close();
                    myCmd.Dispose();
    
                }
            }
        
        }
        /// <summary>
        /// 说  明:  GetDataSet数据集,返回数据源的数据表
        /// 返回值:  数据源的数据表
        /// 参  数:  sqlStr执行的SQL语句,TableName 数据表名称
        /// </summary>
        public DataTable GetDataSet(string strSql, string TableName)
        {
            ds= new DataSet();
            try
            {
                myConn = GetConnection();//与数据库连接
    
                adapt = new SqlDataAdapter(strSql, myConn); //实例化SqlDataAdapter类对象
                adapt.Fill(ds,TableName);//填充数据集
    
                return ds.Tables[TableName];//返回数据集DataSet的表的集合
    
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
    
            }
            finally
            {//断开连接,释放资源
                myConn.Close();
                adapt.Dispose();
                ds.Dispose();
                myConn.Dispose();
                
            }
    
        }
    
    
  • 相关阅读:
    线性同余方程模板( A+C*x=B(mod D) )
    线性同余方程组模板( x=r0(mod m0) )
    poj2891(线性同余方程组)
    BestCoder Round #63 (div.2)
    16.实现多个具有相同方法的接口和父类与实现接口有相同方法
    14.Java中的StringTokenizer类的使用方法
    13.Java为什么不支持多继承
    bootstrap使用基础
    Js 百分比进度条
    Js更改样式导致hover效果消失
  • 原文地址:https://www.cnblogs.com/tiandi/p/1980403.html
Copyright © 2011-2022 走看看