sql存储过程调用示例
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存储过程调用示例的更多相关文章
- SQL 存储过程调用存储过程
研究一个别人做的项目代码看到数据库里有一段存储过程调用存储过程的代码,原来的代码比较复杂. 于是自己打算写一个简单的例子学习一下. 一.首先创建了被需要被调用的存储过程. USE [MSPetShop ...
- sql 存储过程调用函数
/****************************************************************************** ** Name: usp_biz_Con ...
- 存储过程调用http 服务
--sql 服务器设置 --启动 OLE Automation Proceduressp_configure 'show advanced options', 1; --此选项用来显示sp_con ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
- SQL存储过程的调用及写法
调用函数: public class SqlProcess { ; public DataSet ReturnSet = null; public SqlDataAdapter adapter = n ...
- SQL 语句调用这个存储过程,生成顺序编码
一直很讨厌存储过程,没想到今天帮了我大忙啊,或许会因为今天让我慢慢喜欢上存储过程吧,不多说了,切入正题 在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这 ...
- ADO.NET访问SQL Server调用存储过程带回参
1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...
- (转载)delphi 中如何调用sql 存储过程
delphi 中如何调用sql 存储过程 使用TADOStoredProc组件,可以,给你举个例子好了 with ADOStoredProc1 do begin Close; Parameters.C ...
- 在PL/SQL中调用Oracle存储过程
存储过程 1 什么是存储过程? 用于在数据库中完成特定的操作或者任务.是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用. 2 存储过程的参数模式 存储过程的参数特性: IN类型的参数 ...
随机推荐
- Java_03选择结构
1.if 选择结构 格式: if(判断条件){ // 语句块 }else if(判断条件){ // 语句块 2 }else{ // 语句块 3 } 当 if 关键字后的一对大括号里只有一个语句时,可以 ...
- EBS查询在线用户
转自:https://www.cnblogs.com/benio/archive/2011/03/10/1979417.html SELECT u.user_name, app.application ...
- 常用的HTML模板(转载)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Day 18 常用模块(二)
一.随机数:RANDOM 1.(0,1)小数:random.random() 2.[1,10]整数:random.randint(1,10) 3.[1,10)整数:random.randrang(1, ...
- visual studio 2017下载地址
因为Visual studio 2017采用的是下载安装模式,所以下载比较慢,安装不方便.所以,这几天将下载过的visual studio 2017的文件打包成ISO文件并存到了百度网盘.希望对现在需 ...
- Python学习:函数式编程(lambda, map() ,reduce() ,filter())
1. lambda: Python 支持用lambda对简单的功能定义“行内函数” 2.map() : 3.reduce() : 4.filter() : map() ,reduce() , filt ...
- Oracle 动态SQL 注意细节 ORA-00911: 无效字符
随笔 - 46 文章 - 92 评论 - 5 lv_sql:=' insert into ETL_SUCESS_AMOUNT select SEQ_OS_ETL_AMOUNTID.NEXT ...
- 简单的爬虫爬的完整的<img>标签,修改正则即可修改爬取内容
简单的爬虫爬的完整的<img>标签,生成<img>标签结果文件与爬虫经历的网页. <?php/** 从给定的url获取html内容** */function _getUr ...
- vim汇总
跳到100行 100gg :100
- final link failed: Nonrepresentable section on output
编译live555的时候遇到了这个问题,前面的编译没有问题,是在链接的时候出现的,在网上搜索说是缺少 libstdc++ 库.于是,安装之 #sudo apt-get install libstdc ...