C#中调用SQL存储过程(带输入输出参数的例子)

编程入门 行业动态 更新时间:2024-10-10 11:27:58

C#中调用SQL<a href=https://www.elefans.com/category/jswz/34/1764414.html style=存储过程(带输入输出参数的例子)"/>

C#中调用SQL存储过程(带输入输出参数的例子)

 首先建立存储过程,默认为输入参数,输出参数后面要加output

    /**

        存储过程         

        create procedure queryStuNameById

        @stuId varchar(10),-- 输入参数

        @stuName varchar(10) output -- 输出参数

            as

        select @stuName=stuName from stuInfo where stuId=@stuId         

     */

Command 对象上设定输出参数类型,大小后,还要指明参数为输出参数。

// 注意输出参数要设置大小, 否则size 默认为0,

sqlComm.Parameters.Add("@stuName" , SqlDbType .VarChar, 10);

// 设置参数的类型为输出参数, 默认情况下是输入,

sqlComm.Parameters["@stuName" ].Direction = ParameterDirection .Output;

执行完命令后,还要通过Command 对象获得输出参数的值。

name = sqlComm.Parameters["@stuName" ].Value.ToString();

完整代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.Data;

using System.Data.SqlClient;

 

namespace StoreProduceTest

{

    public class Program

    {

        static void Main(string [] args)

        {

            Operater op = new Operater ();

            string name = op.QueryStuNameById("1234" );

 

            Console .WriteLine(string .Format(" 学号为1234 的学生的姓名为{0}" , name));

        }

 

 

    }

 

    public class Operater

    {

        private string ConStr = "server=.;database=User;uid=sa;pwd=1234" ;

        private SqlConnection sqlCon = null ;

        private SqlCommand sqlComm = null ;

        SqlDataReader dr = null ;

 

        public string QueryStuNameById(string Id)

        {

 

            string name = "" ;

 

            try

            {

                using (sqlCon = new SqlConnection (ConStr))

                {

 

                    sqlCon.Open();

                    sqlComm = new SqlCommand ("queryStuNameById" , sqlCon);

                    // 设置命令的类型为存储过程

                    sqlComm.CommandType = CommandType .StoredProcedure;

 

                    // 设置参数

                    sqlComm.Parameters.Add("@stuId" , SqlDbType .VarChar);

 

                    // 注意输出参数要设置大小, 否则size 默认为0,

                    sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10);

                    // 设置参数的类型为输出参数, 默认情况下是输入,

                    sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output;

 

                    // 为参数赋值

                    sqlComm.Parameters["@stuId" ].Value = "1234" ;

                    // 执行

                    sqlComm.ExecuteNonQuery();

 

                    // 得到输出参数的值, 把赋值给name, 注意, 这里得到的是object 类型的, 要进行相应的类型轮换

                    name = sqlComm.Parameters["@stuName"].Value.ToString();

 

                }

 

            }

            catch (Exception ex)

            {

 

                Console .WriteLine(ex.ToString());

            }

            return name;

        }

    }

}

转载于:.html

更多推荐

C#中调用SQL存储过程(带输入输出参数的例子)

本文发布于:2024-02-14 07:33:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1762185.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:存储过程   输入输出   例子   参数   SQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!