亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用C#調(diào)用存儲(chǔ)過程,用函數(shù)合理組織代碼,使程

系統(tǒng) 3141 0

雖然調(diào)用存儲(chǔ)過程并不難實(shí)現(xiàn),但是在程序中合理的組織代碼,能使得程序結(jié)構(gòu)更加的明晰,也更加易于維護(hù)。

下面的示例將存儲(chǔ)過程的調(diào)用分為三部分:

1、為調(diào)用存儲(chǔ)過程準(zhǔn)備各種數(shù)據(jù):數(shù)據(jù)庫連接字符串、存儲(chǔ)過程參數(shù)

2、為執(zhí)行命令準(zhǔn)備參數(shù),使用1中的各種數(shù)據(jù),建立與數(shù)據(jù)庫的連接,為存儲(chǔ)過程的調(diào)用準(zhǔn)備好參變量和設(shè)置變量

3、執(zhí)行存儲(chǔ)過程,如查詢操作或更新操作

示例代碼如下:

?

    using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using System.Data.SqlClient;



namespace 使用存儲(chǔ)過程

{

    class Program

    {

        //配置連接字符串

        public static string ConnString = @"Data Source=Q-PC\SQLEXPRESS;Integrated Security=SSPI;uid=sa;pwd=;Initial Catalog=hangyun";

        static void Main(string[] args)

        {

            Program p = new Program();



            SqlParameter[] parms = new SqlParameter[] //為存儲(chǔ)過程配置參數(shù)

            { 

                new SqlParameter("@parms0",SqlDbType.NVarChar),

                new SqlParameter("@parms1",SqlDbType.NVarChar),

                                   .

                                   .

                                   .

                                   .

            };

            //為參數(shù)賦值

            parms[0].Value=需要傳入存儲(chǔ)過程中的值

            parms[1].Value=

            parms[2].Value=

                  .

                  .

                  .

                  .



            p.ExcStoreNonQuery(CommandType.StoredProcedure, "QHC_DomesticCompanyManage", parms);

            Console.ReadLine();

        }



        #region 存儲(chǔ)過程執(zhí)行更新

        ///<summary>

        ///執(zhí)行一個(gè)不需要返回值的SqlCommand命令,通過指定專用的連接字符串。

        /// 使用參數(shù)數(shù)組形式提供參數(shù)列表 

        /// </summary>

        /// <remarks>

        /// 使用示例:

        ///  int result = ExcStoreNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));

        /// </remarks>

        /// <param name="connectionString">一個(gè)有效的數(shù)據(jù)庫連接字符串</param>

        /// <param name="commandType">SqlCommand命令類型 (存儲(chǔ)過程, T-SQL語句, 等等。)</param>

        /// <param name="commandText">存儲(chǔ)過程的名字或者 T-SQL 語句</param>

        /// <param name="commandParameters">以數(shù)組形式提供SqlCommand命令中用到的參數(shù)列表</param>

        /// <returns>返回一個(gè)數(shù)據(jù)值表示此SqlCommand命令執(zhí)行后影響的行數(shù)</returns>

        public int ExcStoreNonQuery(string connString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)

        {

            SqlCommand cmd = new SqlCommand();

            SqlConnection conn = new SqlConnection(ConnString);

            try

            {

                //通過PrePareCommand方法將參數(shù)逐個(gè)傳入到SqlCommand的參數(shù)集合中

                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);

                int val = cmd.ExecuteNonQuery();

                //清空SqlCommand中的參數(shù)列表

                cmd.Parameters.Clear();

                return val;

            }

            catch (Exception e)

            {

                throw new Exception("執(zhí)行任務(wù)失敗:" + e.Message + "   " + cmdText);



            }

            finally

            {

                cmd.Dispose();

                conn.Close();

                conn = null;

            }

        }

        #endregion



        #region 存儲(chǔ)過程執(zhí)行查詢

        /// <summary>

        /// 執(zhí)行一條返回結(jié)果集的SqlCommand,通過一個(gè)已經(jīng)存在的數(shù)據(jù)庫連接

        /// 使用參數(shù)數(shù)組提供參數(shù)

        /// </summary>

        /// <remarks>

        /// 使用示例:

        /// DataTable table=StoreGetTable(conn,CommandType.StoredProcedure,"PublishOrders");

        /// </remarks>

        /// <param name="connecttionString">一個(gè)現(xiàn)有的數(shù)據(jù)庫連接</param>

        /// <param name="cmdTye">SqlCommand命令類型</param>

        /// <param name="cmdText">存儲(chǔ)過程的名字或者 T-SQL 語句</param>

        /// <returns>返回一個(gè)表(DataTable)表示查詢得到的數(shù)據(jù)集</returns>

        public DataTable StroreGetTable(CommandType cmdTye, string cmdText, params SqlParameter[] commandParameters)

        {

            SqlCommand cmd = new SqlCommand();

            DataTable ds = new DataTable();

            SqlConnection conn = new SqlConnection(ConnString);

            try

            {

                PrepareCommand(cmd, conn, null, cmdTye, cmdText, commandParameters);

                SqlDataAdapter adapter = new SqlDataAdapter();

                adapter.SelectCommand = cmd;

                adapter.Fill(ds);

                //返回一個(gè)表集

                return ds;

            }

            catch (Exception e)

            {

                throw new Exception("執(zhí)行任務(wù)失敗:" + e.Message + "   " + cmdText);



            }

            finally

            {

                cmd.Dispose();

                conn.Close();

                conn = null;

            }

        }

        #endregion



        #region 為執(zhí)行命令準(zhǔn)備參數(shù)

        ///<summary>

        ///為執(zhí)行命令準(zhǔn)備參數(shù)

        ///</summary>

        ///<param name="cmd">Sqlcommang命令</param>

        ///<param name="conn">已經(jīng)存在的數(shù)據(jù)庫連接</param>

        ///<param name="trans">數(shù)據(jù)庫事物處理</param>

        ///<param name="cmdType">SqlCommand命令類型(存儲(chǔ)過程,T-Sql語句,等等。)</param>

        ///<param name="cmdText">Command text,T-Sql語句,例如:Select * from sufei</param>

        ///<param name="cmdParms">返回帶參數(shù)的命令</param>

        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)

        {

            //判斷數(shù)據(jù)庫連接狀態(tài)

            if (conn.State != ConnectionState.Open)

                conn.Open();

            cmd.Connection = conn;

            cmd.CommandText = cmdText;

            //判斷是否需要事物處理

            if (trans != null)

            {

                cmd.Transaction = trans;

            }



            cmd.CommandType = cmdType;



            if (cmdParms != null)

            {

                foreach (SqlParameter parm in cmdParms)

                    cmd.Parameters.Add(parm);

            }

        }

        #endregion

    }

}turnValue Output 
  


?

?

使用C#調(diào)用存儲(chǔ)過程,用函數(shù)合理組織代碼,使程序更加的清晰(示例)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久久男女野外野战 | 国产精品久久久久国产精品三级 | 亚洲九九色 | 国产精品久久久久久久久久日本 | 四虎影视免费永久在线观看 | 欧美日本国产 | 97久草| 久久久91精品国产一区二区三区 | 成人国产精品免费视频 | 日本不卡免费高清视频 | 日本中文字幕高清 | 99久久爱re热6在播放 | 视频在线日韩 | 久久精品久久久久久久久人 | 在线观看福利影院 | 欧美高清一区 | 美女超爽久久久久网站 | 午夜欧美视频 | 奇米成人网 | 韩国理论片在线看2828dy | 在线国产日韩 | 91精品国产高清久久久久 | 亚洲在线欧美 | 青青青国产精品国产精品久久久久 | 久久只精品| 亚洲国产精品悠悠久久琪琪 | 亚洲精品98久久久久久中文字幕 | 日本高清一级做a爱过程免费视频 | 亚洲精品视 | 91视频福利 | 色一区二区 | 国产目拍亚洲精品一区二区三区 | 一二三四社区在线播放 | 亚洲欧美人成综合在线最新 | 免费看欧美一级片 | 色综合一区 | 日韩激情中文字幕一区二区 | sese在线视频| 久久综合玖玖爱中文字幕 | 黄色资源在线观看 | 亚洲综合网站久久久 |