1.配置文件:

<connectionStrings>
<add name="constr" connectionString="data source=127.0.0.1;initial catalog=test;user id=sa;password=123"/>
</connectionStrings>

2.代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data.SqlClient;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string constr = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

using (SqlConnection con =new SqlConnection(constr))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;

cmd.Connection = con;

cmd.Parameters.Add("@in_str", System.Data.SqlDbType.VarChar);

cmd.Parameters.Add("@out_str", System.Data.SqlDbType.NVarChar);
cmd.Parameters["@out_str"].Direction = System.Data.ParameterDirection.Output;

cmd.CommandText = "sp_test";

cmd.Parameters["@in_str"].Value = "input str";
cmd.Parameters["@out_str"].Value = "";

cmd.Parameters["@in_str"].Size =20;//此处如果没有赋值,那么就会按照最初给的值的大小来进行指定
cmd.Parameters["@out_str"].Size = 200;

SqlDataAdapter sda = new SqlDataAdapter(cmd);

System.Data.DataTable dt = new System.Data.DataTable("table_name");

sda.Fill(dt);

Console.WriteLine("@in_st----{0}", cmd.Parameters["@in_str"]);

Console.WriteLine("@out_str---{0}", cmd.Parameters["@out_str"]);

if (dt!=null && dt.Rows.Count >0)
{

foreach (System.Data.DataRow item in dt.Rows)
{
string msg = string.Empty;

for (int i = 0; i < dt.Columns.Count; i++)
{
msg = msg + "---" + item[i].ToString();
}

Console.WriteLine(msg);
}
}

Console.ReadKey();

}

}
}
}

3.存储过程:

create PROCEDURE sp_test
@in_str VARCHAR(20),
@out_str NVARCHAR(200) OUTPUT
AS
BEGIN

BEGIN TRY

SET @in_str ='wo shi instr';

SET @out_str ='wo shi out_str'

IF not EXISTS(SELECT * FROM sys.objects WHERE type='U' AND name ='test_table')
BEGIN
CREATE TABLE test_table
(
id INT IDENTITY(1,1),
emp_no VARCHAR(20),
emp_name NVARCHAR(50)
)

DECLARE @index INT
SET @index =1;

--SELECT RAND(1)

WHILE(@index <50)
BEGIN
INSERT INTO dbo.test_table
( emp_no, emp_name )
VALUES (
CEILING(RAND()*100), -- emp_no - varchar(20) 1--100
FLOOR(RAND()*100) -- emp_name - nvarchar(50) 0--99
)
SET @index +=1;
END

END

SELECT * FROM dbo.test_table

END TRY

BEGIN CATCH
SET @out_str ='exception'+ERROR_MESSAGE();

PRINT @out_str
END CATCH

END

sql存储过程调用示例的更多相关文章

  1. SQL 存储过程调用存储过程

    研究一个别人做的项目代码看到数据库里有一段存储过程调用存储过程的代码,原来的代码比较复杂. 于是自己打算写一个简单的例子学习一下. 一.首先创建了被需要被调用的存储过程. USE [MSPetShop ...

  2. sql 存储过程调用函数

    /****************************************************************************** ** Name: usp_biz_Con ...

  3. 存储过程调用http 服务

    --sql 服务器设置 --启动 OLE Automation Proceduressp_configure 'show advanced options', 1;   --此选项用来显示sp_con ...

  4. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  5. SQL存储过程的调用及写法

    调用函数: public class SqlProcess { ; public DataSet ReturnSet = null; public SqlDataAdapter adapter = n ...

  6. SQL 语句调用这个存储过程,生成顺序编码

    一直很讨厌存储过程,没想到今天帮了我大忙啊,或许会因为今天让我慢慢喜欢上存储过程吧,不多说了,切入正题 在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这 ...

  7. ADO.NET访问SQL Server调用存储过程带回参

    1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign  use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...

  8. (转载)delphi 中如何调用sql 存储过程

    delphi 中如何调用sql 存储过程 使用TADOStoredProc组件,可以,给你举个例子好了 with ADOStoredProc1 do begin Close; Parameters.C ...

  9. 在PL/SQL中调用Oracle存储过程

    存储过程 1 什么是存储过程? 用于在数据库中完成特定的操作或者任务.是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用. 2 存储过程的参数模式 存储过程的参数特性: IN类型的参数 ...

随机推荐

  1. 批量写入redis

    批量写入redis key := GetSeriesKey(series.Id) idNames = append(idNames, key, series.Name) == { err = Mset ...

  2. from组件

    目录 一.生成页面可用的 HTML标签 二.对用户提交的数据进行校验 三. form 综合示例: 四. modelform(自动根据字段生成表单) 五.modelformset 一.生成页面可用的 H ...

  3. 005-docker启动设置环境变量

    https://blog.csdn.net/wsbgmofo/article/details/79173920

  4. Java泛型相关总结(下)

    约束与局限性 不能用基本类型实例化类型参数 不能像Pair<double>这样调用,只能Pair<Double>,原因是类型擦除 运行时类型查询只使用于原始类型 虚拟机中的对象 ...

  5. 修改windows7 的管理员密码

    某天,公司财务同事的电脑出现了一个相当奇葩的现象,有些程序不能用了,经过查看,发现本是管理员的账户变得只有一个users用户组了 造成程序在运行时,无权限修改一些文件,造成程序无法启动 my god, ...

  6. cut字符串截取

    cut字符串截取 -d 按字节截取 [root@slave elk]# ll total 0 drwxr-xr-x. 6 root root 194 Jan 24 16:15 bigdesk 截取前2 ...

  7. sql调优2

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  8. caffe实现年龄及性别预测

    一.相关代码及训练好的模型 eveningglow/age-and-gender-classification: Age and Gender Classification using Convolu ...

  9. elasticsearch -- kibana安装配置

    Kibana 是为Elasticsearch设计的开源分析和可视化平台,你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互.你可以很容易实现高级的数据分析 ...

  10. tensorflow训练中出现问题Couldn't open CUDA library cupti64_80.dll

    参考链接:http://blog.csdn.net/lanchunhui/article/details/62242568 在代码中添加了tensorboard可视化代码后,原程序运行报错,以上链接方 ...