news 2026/4/25 0:46:20

C#怎么操作数据库存储过程 C#如何调用SQL Server存储过程传参并获取返回结果【数据库】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#怎么操作数据库存储过程 C#如何调用SQL Server存储过程传参并获取返回结果【数据库】

调用存储过程必须设SqlCommand.CommandType = CommandType.StoredProcedure;参数名须与存储过程定义一致,输出/返回参数需显式指定方向,执行后从SqlParameter.Value取值,DateTime优先用SqlDbType.DateTime2,空值赋DBNull.Value,异步调用需ConfigureAwait(false)防死锁。SqlConnection 执行带参数的存储过程必须用 SqlCommand.CommandType = StoredProcedure直接拼 SQL 字符串调用存储过程(比如 "EXEC proc_GetUser @id = 1")看似能跑通,但会绕过参数化机制,导致 SQL 注入风险、类型推断失败、输出参数无法捕获。核心是告诉 ADO.NET:“这不是普通 SQL,这是个存储过程”。必须显式设置 command.CommandType = CommandType.StoredProcedure存储过程名只写名称,不要加 dbo. 前缀(除非有同名冲突),ADO.NET 会按用户默认 schema 查找参数名要和存储过程中定义的完全一致(大小写不敏感,但建议保持一致),否则 SqlParameter 绑定会静默失败输入参数用 ParameterDirection.Input(默认可省略),输出/返回值参数必须显式指定方向获取存储过程的返回值(RETURN)和输出参数(OUTPUT)不能混用 ExecuteNonQueryExecuteNonQuery 只返回影响行数,它根本不会读取 RETURN 值或 OUTPUT 参数——这些值在命令执行完后才“存在”于 SqlParameter 对象里。无论有没有结果集,都先调用 command.ExecuteNonQuery() 触发执行之后立刻从对应参数对象中取值:returnParam.Value 或 outputParam.Value如果存储过程有 SELECT 结果集,又需要 RETURN 值,仍得用 ExecuteNonQuery,不能切到 ExecuteReader,否则 RETURN 和 OUTPUT 参数不会被填充注意:Value 是 object 类型,需手动转换,比如 (int)returnParam.Value用 SqlParameter 传 DateTime 或 NULL 值时容易类型不匹配或报错SQL Server 的 datetime 和 datetime2 精度不同,C# 的 DateTime 默认精度是 100ns,而旧版 datetime 只支持 3.33ms,传入时若没对齐会报错或截断;传 null 更常见踩坑——直接赋 null 会抛异常,必须用 DBNull.Value。 Mokker AI AI产品图添加背景

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 0:43:42

Vivado工程移植踩坑记:解决IP核路径错误导致编译失败的完整流程

Vivado工程移植避坑指南:系统性解决IP核路径错误的完整方法论 第一次将Vivado工程从同事的电脑迁移到自己的开发环境时,我盯着满屏的"File does not exist"错误提示足足愣了五分钟。这种看似简单的路径错误背后,往往隐藏着工程移植…

作者头像 李华
网站建设 2026/4/25 0:40:21

高压直流输电系统在线监测控制系统功能说明

高压直流输电在线监测Matlab仿真模型 本设计对故障监测,同时设置了GUI界面,可以设置参数等等 一、系统开发背景与核心目标 在电力系统“强直弱交”特性持续增强的背景下,大规模直流互联引发的送、受端交流系统相互影响日益凸显,…

作者头像 李华
网站建设 2026/4/25 0:39:45

MicroPython网页控制进阶:给ESP32热点项目添加多设备控制面板

MicroPython网页控制进阶:ESP32多设备控制面板开发实战 想象一下,你正在调试一个智能家居原型系统,需要同时控制多个房间的灯光、窗帘和温控设备。传统的单设备控制界面显然无法满足这种复杂场景的需求。这正是我们今天要解决的问题——基于E…

作者头像 李华