数据库操作

 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();

            

        }



    }



你可能感兴趣的:(数据库)