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

.NET用使用存儲過程獲取輸出參數的代碼示例!

系統 1847 0
??? 在網上也找到許多關于.NET中使用存儲過程獲取輸出參數的代碼,但怎么看怎么都是記不住,還是自己親自實踐一遍后再記錄下來,這樣才能記得住,必竟自己做過的東西是比較難忘記的!!!
??? 步驟如下:
??? ①建立數據庫logintest,在數據庫中建立表User.
.NET用使用存儲過程獲取輸出參數的代碼示例!
???? 向建立的表中添加幾條測試數據.
??? ②在數據庫中建立存儲過程:
    
USE [logintest]
GO
-- =============================================
-- Author:		牛腩
-- Create date: 2008-10-21 14:01
-- Description:	通過傳入的uid獲取用戶姓名
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetUNameById]
@uid int,
@name varchar(50) output
AS
BEGIN
	select @name=uname from [User] where uid=@uid
END

  

??? ③在VS中建立一個測試頁面ProcTest.aspx,在ProcTest.aspx.cs中導入命名空間
    
using System.Data;
using System.Data.SqlClient;

  

??? ④在Page_Load方法里寫入如下代碼:
    
 // 建立連接字符串,在正式項目中可放在web.config中
        string connStr = "server=niunan\\sqlexpress;uid=sa;pwd=123456;database=logintest";
        // 連接數據庫
        SqlConnection conn = new SqlConnection(connStr);

        try
        {
            // 打開數據庫連接
            conn.Open();
            // 創建用于執行數據庫操作的命令對象, GetUNameById為存儲過程名稱
            SqlCommand cmd = new SqlCommand("GetUNameById", conn);
            // 設置執行命令的方式為存儲過程
            cmd.CommandType = CommandType.StoredProcedure;

            // 向命令對象添加存儲過程所需要的參數
            cmd.Parameters.Add("@uid", SqlDbType.Int);
            // 設置要傳入到存儲過程的參數值
            cmd.Parameters["@uid"].Value = 2;

            // 添加存儲過程中的輸出參數,如果是字符型的必須定義長度
            cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
            // 設置參數為output輸出參數
            cmd.Parameters["@name"].Direction = ParameterDirection.Output;

            // 執行存儲過程
            cmd.ExecuteReader();

            // 獲取執行存儲過程后的輸出參數
            string name = cmd.Parameters["@name"].Value.ToString();

            Response.Write(name);
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        } 

  

??? 運行ASPX頁面,則能夠看到執行存儲過程后返回的結果!
??? 需要注意的是如果輸出參數是varchar類型的話則必須定義長度,否則會出錯,如果輸出參數是數字型的話就不必定義長度了!
??? 下面是完整的ProcTest.aspx.cs的源碼:
    
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class ProcTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // 建立連接字符串,在正式項目中可放在web.config中
        string connStr = "server=niunan\\sqlexpress;uid=sa;pwd=123456;database=logintest";
        // 連接數據庫
        SqlConnection conn = new SqlConnection(connStr);

        try
        {
            // 打開數據庫連接
            conn.Open();
            // 創建用于執行數據庫操作的命令對象, GetUNameById為存儲過程名稱
            SqlCommand cmd = new SqlCommand("GetUNameById", conn);
            // 設置執行命令的方式為存儲過程
            cmd.CommandType = CommandType.StoredProcedure;

            // 向命令對象添加存儲過程所需要的參數
            cmd.Parameters.Add("@uid", SqlDbType.Int);
            // 設置要傳入到存儲過程的參數值
            cmd.Parameters["@uid"].Value = 2;

            // 添加存儲過程中的輸出參數
            cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
            // 設置參數為output輸出參數
            cmd.Parameters["@name"].Direction = ParameterDirection.Output;

            // 執行存儲過程
            cmd.ExecuteReader();

            // 獲取執行存儲過程后的輸出參數
            string name = cmd.Parameters["@name"].Value.ToString();

            Response.Write(name);
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        } 
    }
}

  

.NET用使用存儲過程獲取輸出參數的代碼示例!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品二区中文字幕 | 91在线成人| 欧美日韩中文一区二区三区 | a国产成人免费视频 | 国产目拍亚洲精品一区二区三区 | 曰本一区二区三区 | 婷婷性 | 久久综合九色综合欧洲色 | 手机看片福利永久国产日韩 | 天天干夜夜骑 | 亚洲狠狠97婷婷综合久久久久 | 神马老子不卡视频在线 | 欧美日韩视频在线播放 | 精品九九九 | 视频日韩 | 九九九久久久久久久爱 | 欧美色综合图区 | 99视频精品全部 在线 | 99视频精品免费99在线 | 99国产欧美久久精品 | 全免费a级毛片免费看不卡 全免费a级毛片免费看视频免 | 久久成人乱小说 | 私人影院aaaaa毛片 | 久久精品呦女 | 奇米久久久| 91资源在线播放 | 欧美成人观看 | 自拍 亚洲 欧美 | 久久在线精品视频 | 99视频免费在线观看 | 国产激情视频一区二区三区 | 四虎永久网址在线观看 | 91精品视频免费观看 | 香蕉久久夜色精品国产 | 久久国内精品 | 亚洲精品mm1313久久 | 亚洲欧美日韩国产综合专区 | 午夜网站在线观看免费网址免费 | 国产麻豆高清视频在线第一页 | 欧美精品成人一区二区视频一 | 亚洲福利视频一区二区三区 |