博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 执行 sql service 的存储过程
阅读量:4544 次
发布时间:2019-06-08

本文共 3233 字,大约阅读时间需要 10 分钟。

 

数据库

/*创建数据库*/create database QQDB/*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*//*使用数据库*/use QQDB /*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*//*创建QQ用户信息表*/create table Users(qq int primary key identity(10000,1),--两个参数--第一个标识种子(从1000开始递增)--第二个增量(步长)pwd varchar(36) not null check(len(pwd)>=6 and len(pwd)<=36),nickname nvarchar(12) default('匿名'),--nvarchar 可变长度 Unicode 数据--Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。支持中文caretetime datetime default(getdate())--创建时间)/*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*//*创建存储过程--注册QQ号(系统提供)--成功:返回QQ号码--数据库所有的物理结构创建都是 create,修改都是 alter,删除都是drop--procedure  简写 proc【存储过程的三种参数】--1.输入参数 input--2.输出参数 output--3.返回参数 return*/alter proc PROC_Register(@nickname nvarchar(12),@pwd varchar(36),@caretetime datetime output)asbegin--插入insert into users(pwd,nickname)values(@pwd,@nickname)declare @qq intselect @qq=@@identity--返回qqselect @caretetime=caretetime from users where qq=@qqreturn @qqend/*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/

 

测试存储过程

/*执行存储过程关键词 exec :全称 execute*/--1.声明变量declare @qq int,@caretetime datetime--@qq变量:用于接受存储过程返回值--2.执行exec @qq=PROC_Register '李四7','123456',@caretetime output--3.打印结果select @qq ,@caretetime/*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/

 

C# 调用 (测试是控制台程序)

static void Main(string[] args)        {            Register();        }        public static void Register()        {            Console.WriteLine("----------用户注册界面-----------");            //Console.Write("请输入昵称:");            //string nickname = Console.ReadLine();            //Console.Write("请输入密码:");            //string password = Console.ReadLine();            string nickname ="cplvfx";            string password ="123456";            //操作数据库            using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=QQDB"))            {                conn.Open();//打开数据库                SqlCommand command = new SqlCommand("PROC_Register", conn);                command.CommandType = CommandType.StoredProcedure;//指明执行命令为存储过程                //处理参数                SqlParameter[] paras = new SqlParameter[]                {                    new SqlParameter("@nickname",nickname),//输入参数                    new SqlParameter("@pwd",password),//输入参数                     new SqlParameter("@caretetime",SqlDbType.DateTime),  //输出参数                    new SqlParameter("@qq",SqlDbType.Int)//返回值参数                };                paras[2].Direction = ParameterDirection.Output;//输出参数                paras[3].Direction = ParameterDirection.ReturnValue;//返回值参数类型                command.Parameters.AddRange(paras);//添加参数                int result = command.ExecuteNonQuery();//执行脚本                if (result > 0)                {                    string caretetime = paras[2].Value.ToString();                    string qq = paras[3].Value.ToString();                    Console.WriteLine($"注册成功!您的QQ号码为:{qq},{caretetime}");                }                Console.ReadKey();            }        }

 

https://www.cnblogs.com/cplvfx/articles/10507951.html

 

转载于:https://www.cnblogs.com/cplvfx/articles/10507990.html

你可能感兴趣的文章
C# 窗体间传值(综合版)
查看>>
关于地址跳转的参数
查看>>
linux每天一小步---find命令详解
查看>>
[VSTO系列]三、简单的UI设计/QQ联系人导出(下)
查看>>
Java 实现缓存,一个线程存,一个线程取
查看>>
Mongodb初探
查看>>
怎样安装虚拟机
查看>>
JQuery --- 第二期 (jQuery属性操作)
查看>>
(数组)Largest Rectangle in Histogram(栈解问题)
查看>>
关于IN-LIST迭代
查看>>
mobile响应式页面meta信息相关记录
查看>>
sublime 调试输出乱码-解决办法 (临时)
查看>>
codeforces 993 A
查看>>
gridview表头不生成<th>
查看>>
Jetty:部署到Jetty
查看>>
在XP上安装VS2002
查看>>
linux程序设计——网络信息(第十五章)
查看>>
待补的坑
查看>>
算法稳定性
查看>>
static关键字详解
查看>>