zoukankan      html  css  js  c++  java
  • 在C#中如何使用数据库操作类Sql

     数据库操作类的封装是任何工程都必不可少地,本例当然也不例外。Sql类主要包括两类方法:一类用来直接执行SQL语句,另一类用来执行存储过程。

        其中的数据库连接字符串的数据库路径采用了绝对路径,读者调试程序时应当做相应的更改。Sql类的具体代码如下:


        using System;
        using System.Collections.Generic;
        using System.Text;
        using System.Data.SqlClient;
        using System.Data;
        namespace MyChat

        {

        //数据库操作类

        public class Sql
        {
        private string str = null;                   //数据库连接字符串
        public SqlConnection Con;                    //sql数据连接组件实例化
        public SqlCommand command = new SqlCommand();    //初始化一个SQL命令对象
        public Sql()                                 //类初始化,初始化数据连接
        {
        string path = @"C:\Documents and Settings\Administrator\桌面\tools\
        mychat1.0\Chat";
        //数据库连接字符串
        str="Data Source=.\\SQLEXPRESS;AttachDbFilename=\"" + path + "\\app_data\\chat.mdf\";
        Integrated Security=True;User Instance=True";
        Con = new SqlConnection(str);
        }

        #region SQL语句操作

        // 执行只读数据信息的提取,返回一个datareader

        public SqlDataReader GetReader(string search)
        {
        SqlDataReader Reader;
        if(Con.State != ConnectionState.Open)
        Con.Open();                           //打开数据库连接
        SqlCommand Com = new SqlCommand(search, Con);
        Reader = Com.ExecuteReader();        //执行SQL语句
        return Reader;                           //返回一个reader
        }

        // 输入查询字符串,返回dataset

        public DataSet getMyDataSet(string sql)
        {
        command.Connection = Con;            //配置command对象
        command.CommandText = sql;           //赋予要执行的语句
        DataSet dt = new DataSet();          //初始化一个数据返回集合
        SqlDataAdapter da = new SqlDataAdapter(command);
        Con.Open();                          //打开连接
        da.Fill(dt);                     //执行语句
        command.Connection.Close();          //关闭连接
        return dt;
        }

        // 执行非查询SQL语句

        public void ExecuteSql(string sql)
        {
        if(Con.State != ConnectionState.Open)
        Con.Open();                      //如果数据连接关闭,则打开
        SqlCommand Com = new SqlCommand(sql, Con);
        Com.ExecuteNonQuery();               //执行非查询SQL语句
        Con.Close();
        }

        // 执行非查询数据库操作,是否关闭数据库连接  可以选择

        public void ExecuteSql(string sql, bool closeConnection)
        {
        if(Con.State != ConnectionState.Open)
        Con.Open();                      //如果未打开连接,则打开
        SqlCommand Com = new SqlCommand(sql, Con);
        Com.ExecuteNonQuery();
        if (closeConnection) Con.Close();    //如果需要关闭,则关闭连接
        }

        #endregion
        #region 执行存储过程的代码

        //输入存储过程名称,执行查询存储过程
        public DataSet getDataSet(string produreName)
        {
        command.Connection = Con;            //赋予连接对象
        //执行的类型为存储过程
        command.CommandType = CommandType.StoredProcedure  ;
        command.CommandText = produreName;   //赋予执行的存储过程名字
        DataSet dt = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(command);
        Con.Open();                          //打开连接
        da.Fill(dt);                     //填充数据
        command.Connection.Close();
        return dt;                           //返回数据集
        }

        //输入存储过程名,执行非查询存储过程

        public bool exec(string produreName)
        {
        bool flag = false;                   //任务是否正确执行,初始化为false
        command.Connection = Con;            //赋予command对象以数据连接
        command.CommandType = CommandType.StoredProcedure;
        command.CommandText = produreName;   //存储过程名称
        try
        {
        command.ExecuteNonQuery();        //执行存储过程
        flag = true;                      //正确完成任务
        }

        finally
        {
        command.Connection.Close();           //关闭连接
        }
        return flag;                         //返回成功与否的标志
        }
        #endregion
        }
        } 

  • 相关阅读:
    java中值传递和引用传递
    java中的XML
    java I/O流
    RandomAccessFile类
    java中File类
    Java 理论与实践: 正确使用 Volatile 变量
    eclipse 总弹出 secure storage的解决办法
    安卓表格布局android:collapseColumns,android:shrinkColumns和stretchColumn
    Android关联源码support-v4的问题解决
    关于spring framework最新发布压缩包的下载问题 【非常非常新手帖】
  • 原文地址:https://www.cnblogs.com/nianshi/p/815842.html
Copyright © 2011-2022 走看看