免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
c# 如何調(diào)用sql server 存儲(chǔ)過程

c# 如何調(diào)用sql server 存儲(chǔ)過程

       調(diào)用sql server的存儲(chǔ)過程 需要一定的格式,這就像學(xué)刀法,格式就是刀譜,而對(duì)程序語言的理解就是心法,編程序不能只靠刀譜,每次編程都是從例子上拷貝粘貼,也不能只靠心法,否則語法混亂。這是一點(diǎn)編程的理解。

1,首先,需要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)過程,例子如下

create   PROCEDURE dbo.ProcessMeetRec_SingleRec
@a int,
@b int output,
@c varchar(5) output
as

if @a = 1
begin
    select @c = 'a'
   select @b = 9
   return -1
end

if @b = 3
begin
   select @c = 'b'
   return -2
end
begin tran
insert book_user(logname) values('aaa')
if @@error <> 0
begin
   --插入簽到記錄失敗
   raiserror ('插入簽到記錄失敗',16,1) with seterror
   rollback tran
   return -9
end

return 1

注意,@b可以作為輸入輸出參數(shù),@a是輸入?yún)?shù),@c是輸出參數(shù)

2 ,定義一個(gè)調(diào)用存儲(chǔ)過程的方法

      public bool ProcessMeetRec_SingleRec(int a,ref int b,ref string c)
        {
            if (!CheckConn())
            {
                return false;
            }
            try
            {
                SqlCommand cmd = new SqlCommand("ProcessMeetRec_SingleRec", _cn);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
                cmd.Parameters["@a"].Value = a;

                cmd.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
                cmd.Parameters["@b"].Direction = ParameterDirection.InputOutput;
                cmd.Parameters["@b"].Value = 6;

                cmd.Parameters.Add(new SqlParameter("@c", SqlDbType.VarChar, 20));
                cmd.Parameters["@c"].Direction = ParameterDirection.Output;

                //存儲(chǔ)過程返回值
                cmd.Parameters.Add(new SqlParameter("@d", SqlDbType.Int));
                cmd.Parameters["@d"].Direction = ParameterDirection.ReturnValue;

                cmd.ExecuteNonQuery();
                int iRet = (int)cmd.Parameters["@d"].Value;
                b = (int)cmd.Parameters["@b"].Value;
                c = cmd.Parameters["@c"].Value.ToString();
                //返回值-1時(shí)失敗 0成功但記錄無效 1成功記錄有效
                if (iRet == -1)
                    return false;
                else
                    return true;
            }
            catch (Exception ex)
            {
                string e = ex.Message;
                MessageBox.Show(ex.Message, "");
                return false;
            }
        }

注意,其中把@b作為輸入輸出參數(shù),并且一定要賦值,否則會(huì)出錯(cuò)。其中的參數(shù)@d并沒有在存儲(chǔ)過程中定義,它表示存儲(chǔ)過程中return 語句返回的值。這堆程序開始要記的,對(duì)于記性差的人來說,很是郁悶,但寫多了,慢慢會(huì)記住,仔細(xì)看就行,不用刻意死記硬背。

另外,當(dāng)調(diào)用出錯(cuò)時(shí),比如insert book_user(logname) values('aaa')這句出錯(cuò)的話,存儲(chǔ)過程的   raiserror ('插入簽到記錄失敗',16,1) with seterror 這句會(huì)發(fā)生作用,'插入簽到記錄失敗'這句話會(huì)出現(xiàn)在ex.Message中。

2,在一個(gè)按鈕事件中編程如下

        private void btnUse_Click(object sender, EventArgs e)
        {
            int a =8;
            int b = 0;
            string c = "";
            this.ProcessMeetRec_SingleRec(a, ref b, ref c);
        }

注意,因?yàn)锧b是輸入輸出參數(shù),@c是輸出參數(shù),所以要使用ref。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DELPHI如何調(diào)用存儲(chǔ)過程
如何從 ASP 調(diào)用 SQL Server 存儲(chǔ)過程
ACCESS中的存儲(chǔ)過程——參數(shù)查詢
[.NET]ADO.NET調(diào)用存儲(chǔ)過程
VB中訪問存儲(chǔ)過程的幾種辦法 - 設(shè)計(jì)前沿
寫有效率的SQL查詢(V)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服