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

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产品图添加背景

http://www.jsqmd.com/news/695315/

相关文章:

  • CUDA Graph + Dynamic Parallelism双模优化实战(LLaMA-3 8B自定义算子端到端加速手册,限内部团队泄露版)
  • PlayCover深度解析:如何在Apple Silicon Mac上完美运行iOS应用的3个关键技术
  • CSP-J2020直播获奖题解:用‘桶排序’思想5分钟搞定实时分数线计算
  • 3分钟搞定!Windows电脑免费安装安卓APK的终极指南
  • Vivado工程移植踩坑记:解决IP核路径错误导致编译失败的完整流程
  • 2026年4月南昌高端灯具采购指南:聚焦西湖区喜盈门金鹏王朝灯饰商场 - 2026年企业推荐榜
  • SQL嵌套查询与物化视图_提升读性能的组合策略
  • NPU原生视觉-语言模型协同设计与优化实践
  • 避坑指南:Praat提取共振峰时,这些参数设置错了数据就不准了
  • 2026年当前,连云港装修设计公司的核心竞争力与选型指南 - 2026年企业推荐榜
  • I2C协议工程实践详细介绍
  • 机器学习中的数据泄露:识别与预防策略
  • 2026年4月石家庄冬虫夏草回收平台深度**与诚信推荐 - 2026年企业推荐榜
  • 用ESP32和LVGL8.1画个酷炫仪表盘:手把手教你玩转直线样式(Style Line)
  • 2026年4月重庆水平水磨钻机厂家实力盘点与选购指南 - 2026年企业推荐榜
  • b2b供应链系统品牌选型指南:wms仓储物流管理软件,wms管理系统,wms软件,一体化供应链系统,优选指南! - 优质品牌商家
  • mysql数据库迁移到云平台流程_使用数据传输服务DTS工具
  • 2026年4月洞察:连云港顶尖装修设计公司如何重塑家装价值链 - 2026年企业推荐榜
  • Python机器学习书籍推荐与学习路径指南
  • 多维度拆透渲染引擎 第五篇【维度:技术栈】从硬件到引擎 —— 五层技术栈逐层拆解
  • sbox入门
  • CSS如何处理CSS混合模式兼容性_通过前缀与背景图备选进行优化
  • 2026年山西企业资质增项指南:如何选择靠谱的源头服务公司? - 2026年企业推荐榜
  • Another Redis Desktop Manager:告别命令行,可视化Redis数据库管理的终极指南
  • 从‘电流层’到‘紧耦合’:一文读懂天线阵列带宽拓展的‘黑历史’与关键技术演进
  • 2026年4月西安舞台搭建选择指南:为何西安万和中盛品牌营销策划有限公司备受青睐? - 2026年企业推荐榜
  • Java开发程序员转行网络安全领域可以做些什么?
  • 告别Qt Creator,在VS2019里丝滑开发Qt5.14.2项目:保姆级插件配置与项目迁移指南
  • 从图像搜索到推荐算法:实战详解PyTorch余弦相似度与欧氏距离的选型与调优
  • 宜宾家装设计公司可靠性评测:核心维度与本土标杆解析 - 优质品牌商家