数据库
/*创建数据库*/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