C#(.NET)数据访问连接、查询、插入等操作的封装类

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Public 的摘要说明
/// </summary>
public class PublicClass
{   //定义一个公用成员
    public SqlConnection conn;

public PublicClass()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    #region 建立数据库连接
    public void OpenConn()
    {
        String strconn = System.Configuration.ConfigurationManager.AppSettings["sqlconn"].ToString();
        conn = new SqlConnection(strconn);
        if (conn.State.ToString().ToLower() == "open")
        {
            //连接为打开时
        }
        else
        {
            //连接为关闭时
            conn.Open();
        }
    }
    #endregion
    #region 关闭并释放连接
    public void CloseConn()
    {
        if (conn.State.ToString().ToLower() == "open")
        {
            //连接为打开时
            conn.Close();
            conn.Dispose();
        }
    }
    #endregion
    #region 返回DataReader,用于读取数据
    public SqlDataReader DataRead(string sql)
    {
        OpenConn();
        SqlCommand cmd = new SqlCommand(sql, conn);
        SqlDataReader dr = cmd.ExecuteReader();
        return dr;
    }
#endregion
    #region 返回一个数据集
    public DataSet MySqlDataSet(string Sql, string tableName)
    {
        OpenConn();
        SqlDataAdapter da;
        DataSet ds = new DataSet();
        da = new SqlDataAdapter(Sql, conn);
        da.Fill(ds, tableName);
        CloseConn();
        return ds;
    }
    #endregion
    //返回一个数据集
    public DataView MySqlDataSource(string Sql)
    {
        OpenConn();
        SqlDataAdapter da;
        DataSet ds = new DataSet();
        da = new SqlDataAdapter(Sql, conn);
        da.Fill(ds, "temp");
        CloseConn();
        return ds.Tables[0].DefaultView;
    }
    #region 执行一个SQL操作:添加、删除、更新操作

//执行一个SQL操作:添加、删除、更新操作
    public void MySqlExcute(string sql)
    {
        OpenConn();
        SqlCommand cmd;
        cmd = new SqlCommand(sql, conn);
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        CloseConn();
    }
    #endregion
    #region 执行一个SQL操作:添加、删除、更新操作,返回受影响的行
    //执行一个SQL操作:添加、删除、更新操作,返回受影响的行
    public int MySqlExecuteNonQuery(string sql)
    {
        OpenConn();
        SqlCommand cmd;
        cmd = new SqlCommand(sql, conn);
        int flag = cmd.ExecuteNonQuery();
        return flag;
    }
    #endregion

public object MySqlExecuteScalar(string sql)
    {
        OpenConn();
        SqlCommand cmd;
        cmd = new SqlCommand(sql, conn);
        object obj = cmd.ExecuteScalar();
        cmd.Dispose();
        CloseConn();
        return obj;
    }

/// <summary>
    /// 返回DataTable对象
    /// </summary>
    /// <param name="sql">sql语句</param>
    /// <returns></returns>
    public DataTable MySqlDataTable(string sql)
    {
        OpenConn();
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        da.Fill(ds, "table");
        CloseConn();
        return ds.Tables["table"];
    }

/// <summary>
    /// 返回一个数据集的记录数
    /// </summary>
    /// <param name="sql">传递的sql语句必须为一个统计查询</param>
    /// <returns></returns>
    public int MySqlRecordCount(string sql)
    {
        //注:Sql 语句必须是一个统计查询
        OpenConn();
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = sql;
        cmd.Connection = conn;
        SqlDataReader dr;
        dr = cmd.ExecuteReader();
        int RecordCount = -1;
        while (dr.Read())
        {
            RecordCount = int.Parse(dr[0].ToString());
        }
        CloseConn();
        return RecordCount;
    }

/// <summary>
    /// 自定义的功能警告
    /// </summary>
    /// <param name="str">弹出信息框内容</param>
    public void SetAlert(string str)
    {
        HttpContext.Current.Response.Write("<script language='JavaScript' type='text/JavaScript'>alert('" + str + "');</script>");

}
    //返回上一页
    public void AddErro(string message)
    {
        HttpContext.Current.Response.Write("<script>alert('" + message + "');history.back(-1);</script>");
    }

//关闭窗口
    public void SetCloseWindow()
    {
        HttpContext.Current.Response.Write("<script language='JavaScript' type='text/JavaScript'>window.close();</script>");
    }

/// <summary>
    /// 地址跳转
    /// </summary>
    /// <param name="str">跳转地址</param>
    public void SetLocation(string str)
    {
        HttpContext.Current.Response.Write("<script language='JavaScript' type='text/JavaScript'>location='" + str + "';</script>");
    }

public string AjaxSetAlert(string str)
    {
        return "<script language='JavaScript' type='text/JavaScript'>alert('" + str + "');</script>";
    }

//过滤非法字符
    public string FilterStr(string Str)
    {
        Str = Str.Trim();
        Str = Str.Replace("*", "");
        Str = Str.Replace("=", "");
        Str = Str.Replace("/", "");
        Str = Str.Replace("$", "");
        Str = Str.Replace("#", "");
        Str = Str.Replace("@", "");
        Str = Str.Replace("&", "");
        return Str;
    }

//Md5加密算法
    public string md5(string str)
    {
        return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "md5").ToLower().Substring(0, 12);
    }
    public string RndNum(int VcodeNum)
    {
        string Vchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,W,X";
        string[] VcArray = Vchar.Split(new Char[] { ',' }); //将字符串生成数组
        string VNum = "";
        int temp = -1;

Random rand = new Random();

for (int i = 1; i < VcodeNum + 1; i++)
        {
            if (temp != -1)
            {
                rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));
            }

int t = rand.Next(31);            //数组一般从0开始读取,所以这里为31*Rnd
            if (temp != -1 && temp == t)
            {
                return RndNum(VcodeNum);
            }
            temp = t;
            VNum += VcArray[t];
        }
        return VNum;
    }
}

(0)

相关推荐

  • C#百万数据查询出现超时问题的解决方法

    本文较为详细的讲解了C#百万数据查询出现超时问题的解决方法,分享给大家供大家参考之用.具体方法如下: 很多时候我们用C#从百万数据中筛选一些信息时,经常会出现程序连接超时的错误,常见的错误有很多,例如: Timeout expired. The timeout period elapsed prior to completion of the operation or the server等等 本文就常见的几种解决方案进行说明,感兴趣的可以对此加以改进与完善. ①.当然第一步要查看是否Conne

  • c#中文gbk编码查询示例代码

    复制代码 代码如下: private void button_Inquriy_Click(object sender, EventArgs e) {     if (textBox_Inquiry.TextLength > 0)     {         String strInquiry = textBox_Inquiry.Text;         byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(strInqui

  • C#独立域名查询代码

    whois.aspx <% @Page Language="C#" %>  <% @Import Namespace="System.Net.Sockets" %>  <% @Import Namespace="System.Text" %>  <% @Import Namespace="System.IO" %>  <% @Import Namespace="S

  • 利用C#实现分布式数据库查询

    随着传统的数据库.计算机网络和数字通信技术的飞速发展,以数据分布存储和分布处理为主要特征的分布式数据库系统的研究和开发越来越受到人们的关注.但由于其开发较为复杂,在一定程度上制约了它的发展.基于此,本文提出了在.Net环境下使用一种新的开发语言C#结合ADO.Net数据访问模型来开发分布式数据库系统,大大简化了开发过程. 1 分布式数据库系统 就其本质而言,分布式数据库系统的数据在逻辑上是统一的,而在物理上却是分散的.与集中式数据库相比它有如下主要优点: · 解决组织机构分散而数据需要相互联系的

  • c#字符长度查询代码

    复制代码 代码如下: using System; using System.Text; namespace StringLengthTest { class Program { static void Main(string[] args) { string strTmp = "abcd1234软件包"; int i = Encoding.GetEncoding("GB2312").GetBytes(strTmp).Length; int j = Encoding.

  • C# Socket连接请求超时机制实现代码分享

    .Net的System.Net.Sockets.TcpClient和System.Net.Sockets.Socket都没有直接为Connect/BeginConnect提供超时控制机制.因此,当服务器未处于监听状态,或者发生网络故障时,客户端连接请求会被迫等待很长一段时间,直到抛出异常.默认的等待时间长达20~30s..Net Socket库的SocketOptionName.SendTimeout提供了控制发送数据的超时时间,但并非本文讨论的连接请求的超时时间.实现 下面是实现的关键代码:

  • c#数据绑定之向查询中添加参数(.Net连接外部数据库)

    在ACCESS数据库中可以用MSSQL的形式定义操作字符串,也可以采用OLEDB的形式. MSSQL 形式 复制代码 代码如下: string sqlText = @"SELECT * FROM [User] WHERE UserName= @name"; OLEDB的形式 复制代码 代码如下: string sqlText = @"SELECT * FROM [User] WHERE UserName= ?"; 下一步是通过 OleDbCommand执行操作. 复

  • c#使用wmi查询usb设备信息示例

    开发环境:Visual Studio V2010 .NET Framework 4 Client Profile 复制代码 代码如下: using System;using System.Management;using System.Text.RegularExpressions;using System.Collections.Generic; namespace Splash.IO.PORTS{/// <summary>/// 即插即用设备信息结构/// </summary>

  • C#中Linq查询基本操作使用实例

    摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 - let 子句 - 复合from子句 - 在某些情况下,源序列中的每个元素本身可能是序列(集合),也可能包含序列 - 用语访问单个数据库中的内部集合 - 使用多个from字句执行连接 - 可以包含多个可从独立数据源生成补充查询的from字句 复合(顾名思义就是有多from的字句)实例: 复制代码

  • c#中executereader执行查询示例分享

    ExecuteReader执行查询实例 ExecuteReader方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果.ExecuteReader 返回一个DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader:如果在OleDbCommand对象中调用,返回的是OleDbDataReader.可以调用DataReader的方法和属性迭代处理结果集.它是一个快速枚举数据库查询结果的机制,是只读.只进的.对SqlDataReader.Read的每次调

  • C# Mysql 查询 Rownum的解决方法

    Sql: 复制代码 代码如下: SELECT @rownum:=@rownum+1 AS rownum,a.order_id ,case when a.Ordered =1 then '已分单' end as Ordered,a.printed ,a.order_sn ,a.user_id ,b.user_name ,a.consignee ,a.tel ,a.mobile ,a.address ,a.pay_name ,a.goods_amount ,a.shipping_fee ,FROM_

随机推荐