ADO.NET知识总结4---SqlParameter参数

目录

5.1 SqlParameter介绍

5.2 SqlParameter创建参数方式

5.3 添加命令参数

5.4 参数使用


 

5.1 SqlParameter介绍

SqlParameter: 表示SqlCommand对象的参数,或与DataSet中列的映射

常用属性

DbType 参数的SqlDbType(即 数据库的类型而言)

Direction 参数的类型:输入\ 输出 \ 输入输出 \ 返回值参数

ParameterName 参数的名称

Size 最大大小 字节为单位

Value 参数的值

SqlValue 作为SQL类型的参数的值

5.2 SqlParameter创建参数方式

方式一用无参构造函数创建参数

SqlParameter pra1 = new SqlParameter();
pra1.ParameterName = "@userName";//参数名
pra1.SqlDbType = SqlDbType.VarChar;//数据类型
pra1.Value = "admin";//参数值
pra1.Size = 20;//大小

方式二以参数名和参数值创建参数

SqlParameter para2 = new SqlParameter("@cardNo", "2022090800001");

方式三:以参数名 和 SqlDbType 创建参数

SqlParameter para3 = new SqlParameter("@memberName", SqlDbType.Int);

方式四:以参数名、类型、大小 创建参数

SqlParameter para4 = new SqlParameter("@UserPwd", SqlDbType.VarChar, 50);
para4.Value = "123456";

方式五:以参数名、类型、大小、源列名(对应DataTable中的列名)

SqlParameter para5 = new SqlParameter("@UserName", SqlDbType.VarChar, 20, "UName");

5.3 添加命令参数

在条件查询中,可以不通过参数传递值,而是拼接生成SQL语句,并包含具体的值

但是拼接SQL:容易被SQL注入--钻空子,如何解决呢?----- 使用参数

参数的使用:防SQL注入、转义

Command添加参数的几种方法

  1. 添加单个参数
1.SqlParameter para=new SqlParameter("@userName","lingping");
cmd.Parameters.Add(para);  
2.cmd.Parameters.Add("@userName", "lingping");----这种已过时,基本不用
3.
cmd.Parameters.AddWithValue("@userName", "lingping");单个添加参数,推荐
  1. 添加参数数组
SqlParameter[] paras=new SqlParameter[]
{new SqlParameter("@userName","lingping"),new SqlParameter("@userPwd","123456")};
cmd.Parameters.AddRange(paras);   --添加参数数组

5.4 参数使用

平常用的参数,主要是指输入参数,参数还包含:输出参数、输入输出参数和返回值参数

输入参数参数化SQL语句存储过程中,默认使用的参数.

其他三种,主要用在存储过程里。

输出参数 存储过程里用 output 标识的参数

程序中是可以接收到存储过程里需要返回的值 而不是用return

Direction:Output

//定义输出参数
SqlParameter paraNo = new SqlParameter("@cardNo",SqlDbType.VarChar,50);
paraNo.Direction = ParameterDirection.Output;
cmd.Parameters.Add(paraNo);
//执行命令后,接收
cmd.ExecuteNonQuery();
conn.Close();
string reNo=paraNo.Value.ToString();

输入输出参数 存储过程里用output 进行标识,它需要传入值,也输出值,不用return

Direction:InputOutput

//定义输入输出参数
SqlParameter paraName = new SqlParameter("@memberName",SqlDbType.NVarChar,50);
paraName.Direction = ParameterDirection.InputOutput;
cmd.Parameters.Add(paraName);
//执行命令后,接收
cmd.ExecuteNonQuery();
conn.Close();
string reName=paraName.Value.ToString();

返回值参数
不出现在存储过程中 只可以返回的int类型 通过return 返回的值
Direction:ReturnValue

//定义输入输出参数
SqlParameter paraResult = new SqlParameter("@result",SqlDbType.Int);
paraResult.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(paraResult);
//执行命令后,接收
cmd.ExecuteNonQuery();
conn.Close();
int reVal=(int)paraResult.Value;//接收返回的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/504143.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口测试-postman(使用postman测试接口笔记)

一、设置全局变量 1. 点击右上角设置按钮-》打开管理环境窗口-》选择”全局“-》设置变量名称,初始值和当前值设置一样的,放host放拼接的url,key放鉴权那一串字符,然后保存-》去使用全局变量,用{{变量名称}}形式 二、…

Django学习笔记之数据库(一)

文章目录 安装一、数据库配置二、基本操作步骤1.增加2.查看3.排序4.更新5.删除数据 三、一对多,多对多,一对一1.一对多1.一对一1.多对多 四、查询操作五、聚合操作六、F和Q操作 安装 首先就是安装Mysql和Navicat。 一、数据库配置 其实整个就是连接前端…

【工具变量】统计行业锦标赛激励数据集(2008-2023年)

一、数据简介 坚持创新驱动发展,要强化企业创新主体地位,发挥企业家在技术创新中的重要作用。作为企业组织内部最具有影响力的角色,高级管理人员拥有企业经营管理的自由裁量权,对企业战略决策及由此产生的经营绩效具有举足轻重的…

DuckDB:PRAGMA语句动态配置数据库行为

PRAGMA语句是DuckDB从SQLite中采用的SQL扩展。PRAGMA命令可能会改变数据库引擎的内部状态,并可能影响引擎的后续执行或行为。本文介绍PRAGMA命令及其典型应用场景。 DuckDB PRAGMA介绍 在 DuckDB 中,PRAGMA 是一种编译指示(compiler directi…

【QT-QTableView实现鼠标悬浮(hover)行高亮显示+并设置表格样式】

1、自定义委托类 HoverDelegate hoverdelegate.h #ifndef HOVERDELEGATE_H #define HOVERDELEGATE_H#include <QObject> #include <QStyledItemDelegate>class hoverdelegate : public QStyledItemDelegate {Q_OBJECT // 添加 Q_OBJECT 宏public:explicit hoverde…

Improving Language Understanding by Generative Pre-Training GPT-1详细讲解

Improving Language Understanding by Generative Pre-Training 2018.06 GPT-1 0.有监督、半监督、无监督 CV&#xff1a;ImageNet pre-trained model NLP&#xff1a;pre-trained model? 在计算机视觉中任务包含分类、检测、分割&#xff0c;任务类别数少&#xff0c;对应…

大数据技术 指令笔记1

3.cd命令 cd命令用来切换工作目录至DirName。其中DirName表示法可为绝对路径或相对路径 例如&#xff1a; cd/ 切换到根目录 cd 切换到家目录 cd /etc/sysconfig/ 切换到/etc/sysconfig目录 cd .. 返回到父目录 4.Is命令 Is命令用来列出文件或…

创建Java项目,并添加MyBatis包和驱动包

一 : Mybatis和jsp使用上,只有Dao层有区别 Mybatis 使用方法: 测试类的7步骤 1.读取核心配置文件 2.构建sql会话工厂 3.开启sql会话 4.获取mapper接口 5.调用相对应的增删改查方法 6.打印 7.关闭回话 /*** 用户列表* throws IOException*/Testpublic void roleList() throws IO…

【实用技能】如何使用 .NET C# 中的 Azure Key Vault 中的 PFX 证书对 PDF 文档进行签名

TX Text Control 是一款功能类似于 MS Word 的文字处理控件&#xff0c;包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理&#xff0c;网站内容发布&#xff0c;电子病历中病案模板创建、病历书写、修改历史、连续打…

结构化日志和集中日志服务

目录 结构化日志 Serilog使用 集中化日志 集中日志服务 Exceptionless 控制台项目 总结 结构化日志 结构化日志比普通文本更利于日志的分析&#xff0c;比如统计“邮件发送失败”错误发生了多少次。 NLog也可以配置结构化日志&#xff0c;不过配置麻烦&#xff0c;推荐…

OpenAI CEO 奥特曼发长文《反思》

OpenAI CEO 奥特曼发长文《反思》 --- 引言&#xff1a;从 ChatGPT 到 AGI 的探索 ChatGPT 诞生仅一个多月&#xff0c;如今我们已经过渡到可以进行复杂推理的下一代模型。新年让人们陷入反思&#xff0c;我想分享一些个人想法&#xff0c;谈谈它迄今为止的发展&#xff0c;…

Agentic RAG 解释

RAG&#xff08;检索增强生成&#xff09;通过提供来自外部知识源的相关背景来帮助提高 LLM 答案的准确性和可靠性。 Agentic RAG 是高级 RAG 版本&#xff0c;它使用 AI 代理来更加自主地行动。 Agentic RAG 执行以下操作 查询理解、分解和重写检索策略选择知识库管理结果综…

pg数据库运维经验2024

这篇文章主要是讲pg运维常见问题&#xff0c;两三年见一次的疑难杂症就不说了。 主要是技术性运维总结&#xff0c;主打通俗易懂和快速上手&#xff0c;尽量避免源码层面等深入分析。 SQL性能与执行计划 执行计划突变 pg官方不支持hint功能&#xff0c;并且计划永远不支持&…

每日一题-两个链表的第一个公共结点

文章目录 两个链表的第一个公共结点问题描述示例说明示例 1示例 2 方法及实现方法描述代码实现 复杂度分析示例运行过程示例 1示例 2 总结备注 两个链表的第一个公共结点 问题描述 给定两个无环的单向链表&#xff0c;找到它们的第一个公共节点。如果没有公共节点&#xff0c…

生成模型:变分自编码器-VAE

1.基本概念 1.1 概率 这里有&#xff1a; x为真实图像&#xff0c;开源为数据集, 编码器将其编码为分布参数 x ^ \hat{x} x^为生成图像, 通过解码器获得 p ( x ) ^ \hat{p(x)} p(x)^​: 观测数据的分布, 即数据集所构成的经验分布 p r e a l ( x ) p_{real}(x) preal​(x): …

攻防世界 wtf.sh-150

点进去&#xff0c;发现是一个类似于论坛的网站&#xff0c;并且对报错等做了处理 用御剑扫描一下 ​ 发现是php形式的文件&#xff0c;但点进去访问不了。看看wp&#xff0c;发现此题存在路径穿越漏洞&#xff0c;就是&#xff08;如果应用程序使用用户可控制的数据&#xff0…

Google Play开发者账号的高风险行为解析

在安卓应用开发行业里&#xff0c;Google Play 开发者账号是开发者们通向全球用户的重要桥梁。凭借它&#xff0c;开发者们能够将精心打造的应用推向市场&#xff0c;然而&#xff0c;开发者账号的使用也包含了诸多风险&#xff0c;一些不经意的操作可能会给开发者账号带来封禁…

网络安全-web应用程序发展历程(基础篇)

1.网站程序发展 web1.0 网站是别人的&#xff0c;只能是随便看看 web2.0网站是朋友的&#xff0c;可以进行交流了 web3.0网站是自己的&#xff0c;可以实现买卖交流。 静态内容阶段&#xff1a;web由大量的静态文档构成&#xff0c;web被看作成超文本共享文件服务器。别人只…

继承(6)

大家好&#xff0c;今天我们来继续学习继承的内容&#xff0c;了解一下this和super两者的一些特性和区别。话不多说&#xff0c;来看。 1.7 super 和 this super和 this都可以在成员方法中用来访问:成员变量和调用其他的成员函数,都可以作为构造方法的第一条语句,那他们之间有…

[离线数仓] 总结二、Hive数仓分层开发

接 [离线数仓] 总结一、数据采集 5.8 数仓开发之ODS层 ODS层的设计要点如下: (1)ODS层的表结构设计依托于从业务系统同步过来的数据结构。 (2)ODS层要保存全部历史数据,故其压缩格式应选择压缩比率,较高的,此处选择gzip。 CompressedStorage - Apache Hive - Apac…