当前位置: 首页 > news >正文

爱站网关键词查询系统邢台做移动网站的公司

爱站网关键词查询系统,邢台做移动网站的公司,小说网站开发,软件开发文档编写存储过程在应用程序端的使用的优点 1 如果sql语句直接写在客户端#xff0c;以一个字符串的形式体现的#xff0c;提示不友好#xff0c;会导致效率降低 2 sql语句写在客户端#xff0c;可以利用sql注入进行攻击#xff0c;为了安全性#xff0c;可以把sql封装在…存储过程在应用程序端的使用的优点 1 如果sql语句直接写在客户端以一个字符串的形式体现的提示不友好会导致效率降低         2 sql语句写在客户端可以利用sql注入进行攻击为了安全性可以把sql封装在服务器存储过程在客户端进行 SQL自定义无参数存储过程 创建存储过程 usp_ScoreQuery1 -- 查询考试成绩显示学号、姓名、班级、总成绩并按成绩的总分高低排序。 -- 统计分析考试成绩显示班级名称、C#平均分、数据库平均分按照班级分组实现。 use SMDBgoif exists (select * from sysobjects where name usp_ScoreQuery1)drop procedure usp_ScoreQuery1gocreate procedure usp_ScoreQuery1as-- 查询考试成绩select Students.StudentId,StudentName,ClassName, ScoreSum (CSharp SqlserverDB) from Studentsinner join StudentClass on StudentClass.ClassId Students.ClassIdinner join ScoreList on ScoreList.StudentId Students.StudentIdorder by ScoreSum DESC-- 分析考试信息select ClassName,C#AvgAVG(CSharp),DBAvgAVG(SqlserverDB) from ScoreListinner join Students on Students.StudentId ScoreList.StudentIdinner join StudentClass on StudentClass.ClassId Students.ClassIdgroup by ClassNameorder by ClassNamego 针对上面实现的效果继续修改改为参数可以带默认值  use SMDB go if exists (select * from sysobjects where name usp_ScoreQuery4) drop procedure usp_ScoreQuery4 go create procedure usp_ScoreQuery4-- 带默认值CSharp int 60,SqlserverDB int 60 asselect Students.StudentId,StudentName,CSharp as C#,SqlserverDB as DB from ScoreListinner join Students on Students.StudentId ScoreList.StudentIdwhere CSharp CSharp or SqlserverDB SqlserverDB go-- 调用参数带默认值的存储过程 use SMDB go exec usp_ScoreQuery4 -- 两个都走的默认值 exec usp_ScoreQuery4 70,80 -- 第二个参数取默认值 exec usp_ScoreQuery4 SqlserverDB 70 -- 第一个参数取默认值 exec usp_ScoreQuery4 default,70 -- 第一个参数取默认值(同上) 3. 自定义带输出参数的存储过程 -- 问题查询考试成绩要求自定义分数线显示查询列表并输出缺考总人数、不及格总人数? use SMDB go if exists (select * from sysobjects where name usp_ScoreQuery5) drop procedure usp_ScoreQuery5 go create procedure usp_ScoreQuery5-- 输出参数习惯输出参数放在输入参数的前面AbsentCount int output, -- 缺考总人数FailCount int output, -- 不及格总人数-- 输入参数CSharp int 60, -- CSharp分数线SqlserverDB int 60 -- SqlserverDB分数线 as-- 查询考试成绩要求自定义分数线select Students.StudentId,StudentName,CSharp as C#,SqlserverDB as DB from ScoreListinner join Students on Students.StudentId ScoreList.StudentIdwhere CSharp CSharp or SqlserverDB SqlserverDB-- 缺考总人数select AbsentCount count(*) from Students where StudentId not in (select StudentId from ScoreList)-- 不及格总人数select FailCount count(*) from ScoreList where CSharp CSharp or SqlserverDB SqlserverDB go-- 调用参数带默认值的存储过程 use SMDB go -- 首先定义输出参数命名可以和上面的保持一致不一样也行 declare AbsentCount int, FailCount int -- 调用存储过程时输出参数后面也必须加上 output 关键字 exec usp_ScoreQuery5 AbsentCount output,FailCount output select AbsentCount as 缺考总人数,FailCount as 不及格总人数 -- 打印一下结果 print AbsentCount print FailCount 链接SQL数据库 public string connString Server.;DataBaseSMDB;Uidsa;Pwd123456; 搭建Winfrom窗体  一无参数的存储过程的调用  不带参数存储过程的使用  1指定存储过程名称         string proceName usp_ScoreQuery5;         2创建指令对象传递连接对象和存储过程         SqlCommand cmd new SqlCommand(proceName,conn);         3 指定指令执行类型         cmd.CommandType CommandType.StoredProcedure;         4 执行指令         SqlDataReader dr cmd.ExecuteReader(); private void button1_Click(object sender, EventArgs e){//1 定义存储过程名称string proceName usp_ScoreQuery1;//2 创建一个指令对象SqlCommand cmd new SqlCommand();//3 添加执行sql语句和设置连接对象cmd.CommandText proceName;// 添加执行的sqlcmd.Connection conn; //设置连接对象//4 执行命令类型cmd.CommandType System.Data.CommandType.StoredProcedure;// 5 取出数据ListModel1 model1s new ListModel1();// 存储第一个表的数据ListModel2 models2 new ListModel2();//存储第二个表的数据try{SqlDataReader dr cmd.ExecuteReader(); // 读取数据库数据while (dr.Read()){model1s.Add(new Model1() { StudentId Convert.ToInt32( dr[StudentId]),StudentName dr[StudentName].ToString(),ClassName dr[ClassName].ToString(),ScoreNum Convert.ToInt32(dr[ScoreSum])});}//如果有第二个数据源 读取第二个selectif (dr.NextResult()){while (dr.Read()){models2.Add(new Model2() {ClassName dr[ClassName].ToString(),CSharpAvg Convert.ToInt32(dr[C#Avg]),DBAvg Convert.ToInt32(dr[DBAvg]),});}}dr.Close();this.dataGridView1.DataSource model1s;this.dataGridView2.DataSource models2;}catch{throw;}} 二带输入参数的存储过程的使用 带输入参数的存储过程的调用 1指定存储过程名称                 string proceName usp_ScoreQuery5;         2创建指令对象传递连接对象和存储过程                 SqlCommand cmd new SqlCommand(proceName,conn);         3 指定指令执行类型                 cmd.CommandType CommandType.StoredProcedure;         4 添加输入参数                 cmd.Parameters.Add(new SqlParameter()                     {                         ParameterName CSharp,                         Direction ParameterDirection.Input,                         SqlDbType SqlDbType.Int,                         Value 80                     });         5执行指令                 SqlDataReader dr cmd.ExecuteReader(); private void button2_Click(object sender, EventArgs e) {//1 指明存储过程string proceName usp_ScoreQuery4;//2 创建指令对象SqlCommand cmd new SqlCommand();//3 设置连接和设置执行过程cmd.Connection conn; cmd.CommandText proceName;//4 执行类型cmd.CommandType CommandType.StoredProcedure;//5 设置输入参数//定义参数方法1SqlParameter csharp new SqlParameter();csharp.ParameterName CSharp;// 设置csharp是存储过程中对应CSharp输入参数csharp.Direction ParameterDirection.Input;//设置为输入参数csharp.Value 180;// 设置参数的值为70csharp.SqlDbType SqlDbType.Int; //设置参数类型cmd.Parameters.Add(csharp); // 把输入参数添加到参数列表里面// 定义参数方法2 SqlserverDBcmd.Parameters.Add(new SqlParameter() { ParameterName SqlserverDB,Direction ParameterDirection.Input,Value 180,SqlDbType SqlDbType.Int,});// 6 获取数据ListModel3 list new ListModel3();try{SqlDataReader dr cmd.ExecuteReader();while (dr.Read()){list.Add(new Model3(){StudentId Convert.ToInt32(dr[StudentId]),StudentName dr[StudentName].ToString(),CSharp Convert.ToInt32(dr[C#]),DB Convert.ToInt32(dr[DB]),});}dr.Close();this.dataGridView1.DataSource list;}catch{throw;} } 三调用带输出参数的存储过程 对应的是model3对象 带输入参数带输出参数的调用 添加输出参数即可      cmd.Parameters.Add(new SqlParameter()             {                 ParameterName AbsentCount,                 Direction ParameterDirection.Output,                 SqlDbType SqlDbType.Int,             });    获取输出参数的值         cmd.Parameters[AbsentCount].Value.ToString() private void button3_Click(object sender, EventArgs e) {string proceName usp_ScoreQuery5;SqlCommand cmd new SqlCommand(proceName,conn);//cmd.CommandText proceName;//cmd.Connection conn;cmd.CommandType CommandType.StoredProcedure;//设置输出参数cmd.Parameters.Add(new SqlParameter() { ParameterName AbsentCount,Direction ParameterDirection.Output,SqlDbTypeSqlDbType.Int,});cmd.Parameters.Add(new SqlParameter(){ParameterName FailCount,Direction ParameterDirection.Output,SqlDbType SqlDbType.Int,});//输入参数cmd.Parameters.Add(new SqlParameter(){ParameterName CSharp,Direction ParameterDirection.Input,SqlDbType SqlDbType.Int,Value 80});cmd.Parameters.Add(new SqlParameter(){ParameterName SqlserverDB,Direction ParameterDirection.Input,SqlDbType SqlDbType.Int,Value 80});//取数据ListModel3 list new ListModel3();SqlDataReader dr cmd.ExecuteReader();while (dr.Read()){list.Add(new Model3(){StudentId Convert.ToInt32(dr[StudentId]),StudentName dr[StudentName].ToString(),CSharp Convert.ToInt32(dr[C#]),DB Convert.ToInt32(dr[DB]),});}dr.Close();this.dataGridView1.DataSource list;//输出参数的值怎么取 缺考总人数? 不及格人数?this.label1.Text 缺考总人数: cmd.Parameters[AbsentCount].Value.ToString() 人;this.label2.Text 不及格总人数: cmd.Parameters[FailCount].Value.ToString() 人; }
http://www.ho-use.cn/article/10817424.html

相关文章:

  • 北京系统开发网站建设企业年金是什么意思
  • 济南集团网站建设费用百度一下百度网页版进入
  • 国外网站模板网站建设洛阳设计网站公司
  • 图书馆网站开发的前期准备绍兴市住房与城乡建设厅网站
  • 企业品牌网站建设广州网站建设如何做
  • wordpress做网站容易吗顺德网站建设制作
  • 做网站要交百分七十定金网站备案平台的服务简介
  • 网站访客qq抓取统计系统敖降网站建设
  • 移动端网站如何建设网站开发 项目章程
  • 做网站硬件迁安做网站中的cms润强
  • lamp网站开发黄金组合网站单页seo
  • 阿里买域名 电脑做网站济南房产网签查询系统
  • 主流媒体网站建设自创网站的软件下载
  • 广州的企业网站建设域名app大全免费下载
  • 个人网站做淘宝客违规2022世界足球排行榜
  • 有什么网站可以在线做试题手机网站建设图
  • 哪些网站做国际贸易比较好橙色网站logo 配色
  • 柳州网站虚拟主机销售价格wap和app
  • 毕业设计代做网站代码wordpress 获取全部评论
  • 门户网站建设预算表中国企业公司
  • 快速搭建网站的方法河北住房和城乡建设厅网站卡
  • 网站邮件推送临海app开发
  • 技术支持 深圳网站建设贝尔利网站改版后不收录
  • 分类网站怎么做seo部队网站模板jsp
  • 双流规划建设管理局网站在线工具查看源代码
  • 全国网站建设公司实力排名天津市建设网官网
  • 网站建设实训总结范文行业门户网站模板
  • 公众号和网站先做哪个苏州建站公司精选苏州聚尚网络
  • 公司网站建设推广方案模板自己做的网站怎么上线
  • 溧阳网站建设中心一个新的网站怎么做宣传