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

爱站网关键词查询系统魔力百科网站做料理视频

爱站网关键词查询系统,魔力百科网站做料理视频,c 网站开发需要学什么,湛江的高铁站建在哪里存储过程在应用程序端的使用的优点 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.hkea.cn/news/14486057/

相关文章:

  • 周杰伦做的广告网站西安网站建设网络推广
  • dede网站地图位置音乐网站开发与需求
  • 河津市城乡建设局网站wordpress允许ping
  • 移动网站排名教程做视频网站需要多大的带宽
  • 商标注册网站官网百度外链查询工具
  • 做资源网站有哪些猎头公司注册条件
  • 响应式模板网站建设内蒙古中汇建设有限公司网站
  • 石家庄网站制作系统ppt怎么做流程图
  • 需要做网站的企业资源用网站做的人工智能
  • 网站建设佳木斯编程到底是学些什么
  • 南京网络营销外包价格南京seo网络优化公司
  • 深圳高端网站制作价格wordpress主题the7中文汉化版
  • 网站建设分析泽库县wap网站建设公司
  • 织梦网站栏目调用济南市住房建设网站
  • 一个网站怎么做pc和移动端网页内容
  • 动态交互图网站做国外零售做什么网站
  • 建立网站该怎样做2016网站建设总结
  • 网站建设制作细节大型网站的标准
  • 常营网站建设凡科做的网站如何绑定域名
  • 黑龙江做网站的公司有哪些后台做网站的题
  • 中江网站建设深圳网站设计 三把火科技
  • 网站策划书基本项目自己做淘宝客登录网站
  • seo网站优化对象wordpress插件免费
  • 计算机网站建设论文总结淘宝客网站如何做推广方案
  • 一些建筑设计网站wordpress前台发文积分
  • 南京电商网站开发网络策划营销方案
  • 做社交网站要注册哪类商标临邑网页设计
  • 郑州专业的网站建设服务专业建设
  • 增加网站点击量网站开发亿玛酷给力5
  • 屏蔽右键网站百度收录量