zoukankan      html  css  js  c++  java
  • 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 2012 连接失败
    数据库 基本操作有哪些
    windows 计算机 管理 命令
    windows下编译使用NDK,调用SO文件
    windows 注册表命令
    spring @Transactional 声明式事务
    Set List Map
    bean 的各个属性
    util:
  • 原文地址:https://www.cnblogs.com/muzililong/p/10693439.html
Copyright © 2011-2022 走看看