热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#学习教程:C#存储过程或函数需要未提供的参数分享

C#存储过程或函数需要未提供的参数我是C#的新手,我正在尝试调用我的数据库中的存储过程,该存储过程需要一个参数。我得到错误“过程或函数’SP_getName’

C#存储过程或函数需要未提供的参数

我是C#的新手,我正在尝试调用我的数据库中的存储过程,该存储过程需要一个参数。

我得到错误“过程或函数’SP_getName’期望参数’@username’,这是未提供的。”

当我提供参数时,我的存储过程正常工作,我通过SQL管理工作室运行它。

GO DECLARE @return_value int EXEC @return_value = [dbo].[SP_getName] @username = 'bob101' SELECT 'Return Value' = @return_value GO 

但是,当我尝试调用它时,错误是我如何传递参数,但我无法发现问题所在。

  //create a sql command object to hold the results of the query SqlCommand cmd = new SqlCommand(); //and a reader to process the results SqlDataReader reader; //Instantiate return string string returnValue = null; //execute the stored procedure to return the results cmd.CommandText = "SP_getName"; //set up the parameters for the stored procedure cmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = "bob101"; cmd.CommandType = CommandType.Text; cmd.COnnection= this.Connection; // then call the reader to process the results reader = cmd.ExecuteReader(); 

任何帮助发现我的错误将不胜感激!

我也试过看这两个post,但我没有运气:

存储过程或函数需要未提供的参数

过程或函数需要参数,该参数未提供

谢谢!

你说过了:

 cmd.CommandType = CommandType.Text; 

因此,您只是执行:

 SP_getName 

这是有效的,因为它是批处理中的第一个语句,因此您可以在没有EXECUTE的情况下调用该过程,但实际上并未包含该参数。 将其更改为

 cmd.CommandType = CommandType.StoredProcedure; 

或者您可以将CommandText更改为:

 EXECUTE SP_getName @username; 

作为旁注,您应该避免为存储过程使用前缀“sp_”

另外一个注意事项是使用IDisposable对象来确保它们被正确处理:

 using (var cOnnection= new SqlConnection("ConnectionString")) using (var cmd = new new SqlCommand("SP_getName", connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = "bob101"; connection.Open(); using (var reader = command.ExecuteReader()) { while (reader.Read()) { // Do something } } } 

我有这个问题,但它不是关于命令类型的参数名称。 我的问题是当C#调用SP时,对于没有值的每个参数都传递’default’关键字(我在SQL Profiler中找到它):

 ... @IsStop=0,@StopEndDate=default,@Satellite=0, ... 

在我的情况下,我的参数Type是DateTime:

 @StopEndDate datetime 

。 我通过在存储过程中为此参数设置默认值来解决我的问题:

 @StopEndDate datetime=null 

尝试删除@

上述就是C#学习教程:C#存储过程或函数需要未提供的参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记

 cmd.Parameters.Add("username", SqlDbType.NVarChar).Value = "bob101"; 


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
author-avatar
mobiledu2502908141
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有