zoukankan      html  css  js  c++  java
  • C#调用SQL Server参数过程传参

    -SQL SERVER生成测试环境:

    Create database Test; 
    go
    USE [Test]
    GO
    if OBJECT_ID('Tab2','U') is not null
    	drop table Tab2
    go
    CREATE TABLE [dbo].[Tab2](
    	[ID] [int] IDENTITY(1,1) NOT NULL,
    	[TabID] [int] NOT NULL,
    	[Name2] [nvarchar](50) NULL
    ) 
    GO
    SET IDENTITY_INSERT [dbo].[Tab2] ON 
    GO
    INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (1, 245575913, N'ID')
    GO
    INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (2, 245575913, N'name')
    GO
    INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (3, 277576027, N'ID')
    GO
    INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (4, 277576027, N'Name2')
    GO
    INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (5, 277576027, N'TabID')
    GO
    SET IDENTITY_INSERT [dbo].[Tab2] OFF
    GO
    if OBJECT_ID('P2','P') is not null
    	drop procedure P2
    go
    Create procedure P2
    (
    @StartID int,
    @EndID int,
    @Rowcount int output
    )
    as
    select * from Tab2 where ID between @StartID and @EndID
    set @Rowcount=@@ROWCOUNT
    go
    

    --打开Visual Studio—创建项目—选择【控制台应用程序】

    #region Using Directives
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    #endregion
    
    namespace TestExecute
    {
        class Program
        {
            static void Main(string[] args)
            {
                SqlConnection thisConnection = new SqlConnection(@"Server=(Local);Database=Test;User ID=sa;Password=1");
                thisConnection.Open();
                SqlCommand thisCommand = thisConnection.CreateCommand();
                thisCommand.CommandType = CommandType.StoredProcedure;
                thisCommand.CommandText = "P2";
                IDataParameter[] parameters = {
                    new SqlParameter("@StartID",SqlDbType.Int),
                    new SqlParameter("@EndID",SqlDbType.Int),
                    new SqlParameter("@Rowcount",SqlDbType.Int),
                    new SqlParameter("return_value",SqlDbType.Int)
                };
                parameters[0].Value = "1";
                parameters[1].Value = "5";
                parameters[2].Direction = ParameterDirection.Output;
                parameters[3].Direction = ParameterDirection.ReturnValue;
                thisCommand.Parameters.AddRange(parameters);
                thisCommand.ExecuteNonQuery();
                thisConnection.Close();
                Console.WriteLine("@Rowcount:{0}
    Return_value:{1}",parameters[2].Value,parameters[3].Value);
                Console.ReadKey();
            }
        }
    }
    

    --按F5运行结果:



  • 相关阅读:
    辛星和你彻底搞清CSS中的相对定位和绝对定位
    快速向表中插入大量数据Oracle中append与Nologging
    关于insert /*+ append*/ 各种insert插入速度比较
    dblink连接的目标端 session不断的问题。
    oracle操作记录
    ORACLE快速彻底Kill掉的会话
    Oracle 死锁的检测查询及处理
    Oracle 11g必须开启的服务及服务详细介绍
    oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。
    Oracle报 ORA-00054资源正忙的解决办法
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463039.html
Copyright © 2011-2022 走看看