C#呼叫SQL Server引數過程傳參
- Createdatabase Test;
- go
- USE [Test]
- GO
- if OBJECT_ID('Tab2','U') isnotnull
- droptable Tab2
- go
- CREATETABLE [dbo].[Tab2](
- [ID] [int] IDENTITY(1,1) NOTNULL,
- [TabID] [int] NOTNULL,
- [Name2] [nvarchar](50) NULL
- )
- GO
- SET IDENTITY_INSERT [dbo].[Tab2]
- 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
- 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') isnotnull
- dropprocedure P2
- go
- Createprocedure P2
- (
- @StartID int,
- @EndID int,
- @Rowcount intoutput
- )
- as
- select * from Tab2
where ID between
- set @[email protected]@ROWCOUNT
- go
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 @[email protected]@ROWCOUNT
go
--開啟Visual Studio—建立專案—選擇【控制檯應用程式】[csharp] view plaincopyprint?
- #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
- {
- staticvoid 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}\nReturn_value:{1}",parameters[2].Value,parameters[3].Value);
- Console.ReadKey();
- }
- }
- }
#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}\nReturn_value:{1}",parameters[2].Value,parameters[3].Value);
Console.ReadKey();
}
}
}
--按F5執行結果:
相關推薦
C#呼叫SQL Server引數過程傳參
SQL SERVER生成測試環境: [sql] view plaincopyprint? Createdatabase Test; go USE [Test] GO if OBJECT_ID('Tab2','U') isnotnull dropta
C#呼叫SQL Server分頁儲存過程
以SQL Server2012提供的offset ..rows fetch next ..rows only為例e.g.表名:Tab1 ---------------------------------- ID Name 1 tblAttributeGroupDetail 2
C#呼叫Sql Server 2008的儲存過程流程
前言 最近用到了sql server 2008的儲存過程,特此整理成文 流程步驟 1.獲取連結 SqlConnection myConnection = new SqlConnec
使用C#呼叫SQL Server的儲存過程
Form上有一個button按鈕,name:buttonProcedureClient。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Da
Yii2.0呼叫sql server儲存過程並獲取返回值
1、首先展示建立sql server儲存過程的語句,建立一個簡單的儲存過程,測試用。 1 SET ANSI_NULLS ON 2 GO 3 SET QUOTED_IDENTIFIER ON 4 GO 5 6 CREATE PROCEDURE [dbo].[register_info]
Excel使用ADO呼叫SQL Server儲存過程
測試環境:SQL Server 2014,Excel 2013前期在做一個現場投票的小軟體,準備使用Excel實現,工作簿中包含有兩個工作表,各包含一個命令按鈕,分別用於提交和檢視投票結果。問題出在檢視投票按鈕上,起初只是使用SELECT語句查詢,一切正常;後期對於投票結果需
C#與SQL Server儲存過程之一(建立):使用C#建立SQL Server的儲存過程
通常,開發人員使用的是T-SQL來建立SQL Server的儲存過程、函式和觸發器。而現在的SQL Server 2005已經完全支援.NET通用語言執行時(CLR)了。這就意味著,你可以使用.NET的語言,如C#、VB.NET之類的來開發SQL Server的儲存過程、
C#呼叫SQL中的儲存過程中有output引數
string strsql = string.Format("Sp_AutoTenderTrialAll"); SqlParameter[] sqlParam = new SqlParameter[]{ new SqlParameter("@
Sql Server 儲存過程呼叫儲存過程接收輸出引數,返回值
CREATE PROCEDURE [dbo].[GetCustomers] (@rowcount INT OUTPUT) AS SELECT [CustomerID] ,[CompanyName] ,[ContactName] ,[
VC6.0通過ADO呼叫SQL Server 2000的儲存過程出現引數過多的問題
今天在做畢業設計的時候遇到一個很奇怪的問題,我以前通過傳遞三個引數的儲存過程呼叫都還是很成功的,為什麼今天就不行了呢?程式碼如下: HRESULT hr; if (m_pCmd == NULL) { hr = m_pCmd.Creat
偶然所得!C#後臺呼叫.Net Web API [HttpPost] 傳參問題(基本資料型別引數+自定義實體型別引數)
(說明:以下程式碼僅做參考) 現象:定義一個API介面規範,介面引數包含三個,兩個string型別引數,一個自定義實體型別引數,C#控制檯或Winform程式如何傳送POST請求,訪問API介面? 示例如下,含API介面規範: 下面看C#後臺如何請求該API: 1、先
BCP工具的使用以及C++,SQL server資料庫中呼叫命令列的方法
BCP工具使用: BCP是由SYBASE公司提供的,專門用於資料庫表一級資料備份的工具。 主要引數如下: 基本用法: 遠端地址1的資料庫表student 匯出到本地(遠端ip1(10.189.1.1) ): bcp run.dbo.student out "c:\student
Java呼叫SQL Server的儲存過程詳解
本文較長,包含了如下幾部分 1使用不帶引數的儲存過程 使用 JDBC 驅動程式呼叫不帶引數的儲存過程時,必須使用 call SQL 轉義序列。不帶引數的 call 轉義序列的語法如下所示: {call procedure-name}
C++(筆記)容器(vector)作為函式引數如何傳參
一、大致以下型別 void 函式名( vector< int> obj ); void 函式名( vector< int>* pobj ); void
SQL Server儲存過程Return、output引數及使用技巧
SQL Server目前正日益成為WindowNT作業系統上面最為重要的一種資料庫管理系統,隨著 SQL Server2000的推出,微軟的這種資料庫服務系統真正地實現了在WindowsNT/2000系列作業系統一統天下的局面,在微軟的作業系統上,沒有任何一種資料庫系統能
sql server儲存過程迴圈呼叫
ALTER PROCEDURE [dbo].[OMS_DISCOUNT_SHARING_PRO] @lypt AS VARCHAR(10) AS DECLARE @orderStatus VARCHAR(10); DECLARE @orderlypt VARCHAR(
sql server 儲存過程傳遞表名引數及Dynamic SQL
ALTER PROCEDURE [dbo].[sp_tablenametest] @table_name varchar(50), @PMId int, @ValueEq int AS BEGIN SET NOCOUNT ON; DECLARE @cmd AS NVARC
jdbc 呼叫 sql server 的儲存過程時“該語句沒有返回結果集”的解決方法
在JDBC中呼叫SQL Server中的儲存過程時出現如下異常: com.microsoft.sqlserver.jdbc.SQLServerException: 該語句沒有返回結果集。 at com.microsoft.sqlserver
java呼叫sql server的儲存過程(dbutils)
一般我們在寫介面或者後臺的時候,java用的是springmvc框架,而連線資料庫則用到的是jdbc(原始的),為了更加方便,通過配置檔案的方式連線資料庫(sql server2008),通過兩天的學習,和自己的揣摩,終於弄出來了,為了給一些需要的又剛好沒有找到這個方法的程
給SQL Server儲存過程,傳送陣列引數(多個引數)的變通辦法
最近在做開發過程中碰到這麼一個糾結的問題,需要同時插入N條資料,不想在程式裡控制,但是SQL Sever又不支援陣列引數.所以只能用變通的辦法了.利用SQL Server強大的字串處理傳把陣列格式化為類似"3500320083208#350060052089