加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

用于SqlServer数据库的SqlServerHelper.cs类,及其调用例子

发布时间:2020-12-12 14:54:57 所属栏目:MsSql教程 来源:网络整理
导读:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;using System.Data;using System.Data.SqlClient;namespace demo{ public abstract class SqlServerHelper { public static string ConnStr
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace demo
{
    public abstract class SqlServerHelper
    {
        public static string ConnString = string.Empty;

        public static string Conn_Config_Str_Name = string.Empty;

        public static string Conn_Server = string.Empty;
        public static string Conn_DBName = string.Empty;
        public static string Conn_Uid = string.Empty;
        public static string Conn_Pwd = string.Empty;

        private static string _ConnString
        {
            get
            {
                if (!string.IsNullOrEmpty(ConnString))
                    return ConnString;

                object oConn = ConfigurationManager.ConnectionStrings[Conn_Config_Str_Name];
                if (oConn != null && oConn.ToString() != "")
                    return oConn.ToString();

                return string.Format(@"server={0};database={1};uid={2};password={3}",Conn_Server,Conn_DBName,Conn_Uid,Conn_Pwd);
            }
        }

        // 测试连接
        public static bool TestConn()
        {
            SqlConnection myConn = null;
            bool bResult = false;
            try
            {
                myConn = new SqlConnection(_ConnString);
                myConn.Open();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                if (myConn != null && myConn.State.ToString() == "Open")
                    bResult = true;
            }

            myConn.Close();

            return bResult;
        }

        // 取datatable
        public static DataTable GetDataTable(out string sError,string sSQL)
        {
            DataTable dt = null;
            sError = string.Empty;

            try
            {
                SqlConnection conn = new SqlConnection(_ConnString);
                SqlCommand comm = new SqlCommand();
                comm.Connection = conn;
                comm.CommandText = sSQL;
                SqlDataAdapter dapter = new SqlDataAdapter(comm);
                dt = new DataTable();
                dapter.Fill(dt);
            }
            catch (Exception ex)
            {
                sError = ex.Message;
            }

            return dt;
        }

        // 取dataset
        public static DataSet GetDataSet(out string sError,string sSQL)
        {
            DataSet ds = null;
            sError = string.Empty;

            try
            {
                SqlConnection conn = new SqlConnection(_ConnString);
                SqlCommand comm = new SqlCommand();
                comm.Connection = conn;
                comm.CommandText = sSQL;
                SqlDataAdapter dapter = new SqlDataAdapter(comm);
                ds = new DataSet();
                dapter.Fill(ds);
            }
            catch (Exception ex)
            {
                sError = ex.Message;
            }

            return ds;
        }

        // 取某个单一的元素
        public static object GetSingle(out string sError,string sSQL)
        {
            DataTable dt = GetDataTable(out sError,sSQL);
            if (dt != null && dt.Rows.Count > 0)
            {
                return dt.Rows[0][0];
            }

            return null;
        }

        // 取最大的ID
        public static Int32 GetMaxID(out string sError,string sKeyField,string sTableName)
        {
            DataTable dt = GetDataTable(out sError,"select isnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]");
            if (dt != null && dt.Rows.Count > 0)
            {
                return Convert.ToInt32(dt.Rows[0][0].ToString());
            }

            return 0;
        }

        // 执行 insert,update,delete 动作,也可以使用事务
        public static bool UpdateData(out string sError,string sSQL,bool bUseTransaction = false)
        {
            int iResult = 0;
            sError = string.Empty;

            if (!bUseTransaction)
            {
                try
                {
                    SqlConnection conn = new SqlConnection(_ConnString);
                    if (conn.State != ConnectionState.Open)
                        conn.Open();
                    SqlCommand comm = new SqlCommand();
                    comm.Connection = conn;
                    comm.CommandText = sSQL;
                    iResult = comm.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    sError = ex.Message;
                    iResult = -1;
                }
            }
            else // 使用事务
            {
                SqlTransaction trans = null;
                try
                {
                    SqlConnection conn = new SqlConnection(_ConnString);
                    if (conn.State != ConnectionState.Open)
                        conn.Open();
                    trans = conn.BeginTransaction();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    cmd.CommandText = sSQL;
                    cmd.Transaction = trans;
                    iResult = cmd.ExecuteNonQuery();
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    sError = ex.Message;
                    iResult = -1;
                    trans.Rollback();
                }
            }

            return iResult > 0;
        }

    }
}

 

调用方法:

?

一,先设置数据库连接的信息

????????????//SqlServerHelper.ConnString = @"server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码";

??????????? SqlServerHelper.Conn_Config_Str_Name = @"ConnString";? // ConnString的信息在 App.Config里设置???????????????????????? //SqlServerHelper.Conn_Server = @"电脑名 或 电脑IP";??????????? //SqlServerHelper.Conn_DBName = "数据库名";??????????? //SqlServerHelper.Conn_Uid = "数据库登录名";??????????? //SqlServerHelper.Conn_Pwd = "数据库登录密码";

?

二, App.Config

?

<?xml version="1.0" encoding="utf-8" ?><configuration>? <connectionStrings>??? <add name="ConnString" connectionString="server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码" />? </connectionStrings></configuration>

?

三,? 读取 datatable / dataset 数据

?????????? private void InitGrid()?????????? {

??????????? string sSQL = "select * from test";

??????????? string sError = string.Empty;

??????????? DataTable dt = SqlServerHelper.GetDataTable(out sError,sSQL);

??????????? //DataSet dt = SqlServerHelper.GetDataSet(out sError,sSQL);

??????????? dataGridView1.DataSource = dt;

??????????? if (!string.IsNullOrEmpty(sError))??????????????? Common.DisplayMsg(this.Text,sError);

?????????? }

?

四,插入,修改,删除 数据?(都调用SqlServerHelper.UpdateData方法)

??????????? // 插入

??????????? string? sError = string.Empty;??????????? int iMaxID = SqlServerHelper.GetMaxID(out sError,"id","test") + 1;??????????? string sSql = "insert into test select " + iMaxID + ",'name" + iMaxID + "','remark" + iMaxID + "'";??????????? sError = string.Empty;??????????? bool bResult = SqlServerHelper.UpdateData(out sError,sSql,true);??????????? if (bResult)??????????????? Common.DisplayMsg(this.Text,"插入成功");??????????? else??????????????? Common.DisplayMsg(this.Text,sError);

??????????? InitGrid();

?

??????????? // 修改

??????????? sError = string.Empty;??????????? int iMaxID = SqlServerHelper.GetMaxID(out sError,"test");??????????? string sSql = "update test set name='name_jonse',remark='remark_jonse' where id=" + iMaxID;??????????? sError = string.Empty;??????????? bool bResult = SqlServerHelper.UpdateData(out sError,"修改成功");??????????? else??????????????? Common.DisplayMsg(this.Text,sError);

??????????? InitGrid();

?

???????????? // 删除

??????????? sError = string.Empty;??????????? int iMaxID = SqlServerHelper.GetMaxID(out sError,"test");??????????? string sSql = "delete from test where id=" + iMaxID;??????????? sError = string.Empty;??????????? bool bResult = SqlServerHelper.UpdateData(out sError,sSql);??????????? if (bResult)??????????????? Common.DisplayMsg(this.Text,"删除成功");??????????? else??????????????? Common.DisplayMsg(this.Text,sError);

??????????? InitGrid();

?

五,其它

?

?????? public static void DisplayMsg(string sCaption,string sMsg)?????? {?????????? sMsg = sMsg.TrimEnd('!').TrimEnd('!') + " !";?????????? MessageBox.Show(sMsg,sCaption);?????? }

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读