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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...