C#存儲過程調用的三個方法

来源:http://www.cnblogs.com/xtflz/archive/2016/02/16/5192615.html
-Advertisement-
Play Games

//帶參數的SQL語句 private void sql_param() { SqlConnection conn = new SqlConnection("server=WIN-OUD59R7EHCH;uid=sa;pwd=123456;database=china"); string sql =


//帶參數的SQL語句
        private void sql_param()
        {
            SqlConnection conn = new SqlConnection("server=WIN-OUD59R7EHCH;uid=sa;pwd=123456;database=china");
            string sql = "select *from test where uid=@myid";
            SqlCommand comm = new SqlCommand(sql,conn);
            SqlParameter sp = comm.Parameters.Add("@myid",SqlDbType.Int);
            sp.Value = 2;
            comm.CommandType = CommandType.Text;
            SqlDataAdapter sda = new SqlDataAdapter(comm);
            DataSet ds = new DataSet();
            sda.Fill(ds,"test");
            this.dataGridView1.DataSource = ds.Tables[0];
        }

        //標準的存儲過程
        private void sql_proc()
        {
            SqlConnection conn = new SqlConnection("server=WIN-OUD59R7EHCH;uid=sa;pwd=123456;database=china");
            conn.Open();
            string sql = "proc_out";
            SqlCommand comm = new SqlCommand(sql, conn);
            //將Command執行類型改為存儲過程的方式,預設為Text
            comm.CommandType = CommandType.StoredProcedure;
            //傳遞一個輸入參數,需要賦值
            SqlParameter sp = comm.Parameters.Add("@uid",SqlDbType.Int);
            sp.Value = 1;
            //定義一個輸出參數,不許需要賦值。Direction用來描述參數的類型
            //Direction預設為輸入參數,還有輸出參數和返回值
            sp = comm.Parameters.Add("@output",SqlDbType.VarChar,200);
            sp.Direction = ParameterDirection.Output;
            /*定義過程的返回值參數,過程執行完之後,將把過程的返回值
             * 賦給myreturn的Parameters賦值
             */
            sp = comm.Parameters.Add("myreturn",SqlDbType.Int);
            sp.Direction = ParameterDirection.ReturnValue;
            /*使用SqlDataAdapter將自動完成資料庫的打開和關閉過程,
             * 並將執行t-sql語句或存儲過程
             * 
             * 如果存儲過程只是執行相關操作,如級聯刪除或者更新,
             * 使用sqlcommand的execute方法即可
             * 
             */
            try
            {
                SqlDataAdapter sda = new SqlDataAdapter(comm);
                DataSet ds = new DataSet();
                comm.ExecuteNonQuery();
                //在執行完存儲過程之後,可得到輸出參數
                string myout = comm.Parameters["@output"].Value.ToString();
                //列印輸出參數
                MessageBox.Show("列印輸出參數:" + myout);
                //列印存儲過程返回值
                myout = comm.Parameters["myreturn"].Value.ToString();
                MessageBox.Show("存儲過程返回值:" + myout);

                sda.Fill(ds, "test");
                this.dataGridView1.DataSource = ds.Tables[0];
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                conn.Close();
            }
            
        }

        //簡易的存儲過程的使用
        private void jyc()
        {
            SqlConnection conn = new SqlConnection("server=WIN-OUD59R7EHCH;uid=sa;pwd=123456;database=china");
            string sql = "execute proc_out 1,'12'";
            SqlCommand comm = new SqlCommand(sql,conn);
            SqlDataAdapter da = new SqlDataAdapter(comm);
            DataSet ds = new DataSet();
            da.Fill(ds,"test");
            this.dataGridView1.DataSource = ds.Tables[0];

        }

存儲過程

create proc proc_out @uid int,@output varchar(200) output as
--select結果集
select *from test where uid=@uid 
set @output = '記錄總數:'+convert(varchar(10),(select count(*) from test))
return 200;
go

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Moshi 是一個現代化的JSON庫針對Android和Java。它可以很容易地解析JSON成Java對象: String json = ...; Moshi moshi = new Moshi.Builder().build(); JsonAdapter<BlackjackHand> jsonAd
  • 自定義視圖,視圖控制器,視圖控制器指定視圖,loadView,viewDidLoad,MVC,屏幕旋轉,記憶體警告
  • 迴圈廣告我們在開發中已經是熟得不能再熟了,今天整理這篇scrollview三屏復用廣告 原理使用scrollview里的三個imageview分別去載入不同的圖片,用少量的資源來顯示大量或不確定的廣告數量,不然如果用普通方法實現廣告,難道10個廣告用12個scrollview的contentsize
  • 如下圖是側滑的效果圖 實現的功能主要是用ViewDragHelper,用ViewDragHelper來自定義一個側滑面板來實現側滑 如下是自定義的側滑面板 1 package com.demo.sb.widget; 2 3 import com.nineoldandroids.view.ViewHe
  • 一:藍牙設備之間的通訊首要包含了四個進程 設置藍牙設備 尋覓區域網內也許或許匹配的設備 銜接設備 設備之間的數據傳輸 二:詳細編程完結 1. 發動藍牙功用 首要經過調用靜態辦法getDefaultAdapter()獲取藍牙適配器BluetoothAdapter,假如回來為空,則無法繼續執行了。例如安
  • 前言: QQ表情包就用到瞭解壓縮,從網路下載的那麼多表情文件格式並不是一個一個圖片文件,而是多個圖片壓縮而成的表情壓縮包。下麵介紹的是iOS開發中會用到的壓縮和解壓縮的第三方框架的使用。 註意: 這個第三方框架代碼文件夾是SSZipArchive,使用cocoapods搜索也是搜索SSZipArch
  • in 和 exists 已經成為我們日常查詢時候的常客了。很多時候他們2個都是可以互通實現的,但是,無論兄弟怎麼親,還是會有那麼一些差別的。 先搞個測試表 CREATE TABLE #Tmp1(ID INT,Col1 NVARCHAR(50)) CREATE TABLE #Tmp2(ID INT,T
  • 一、關係 MongoDB 的關係表示多個文檔之間在邏輯上的相互聯繫。文檔間可以通過嵌入和引用來建立聯繫。MongoDB 中的關係可以是:1對1,1對多,多對1,多對多。 一個用戶可以用多個地址,這是典型的一對多關係。 user文檔可以是: { "_id":ObjectId("52ffc33cd852
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...