创建用户的参数化查询抛出缺少用户或角色名称的异常
我正在尝试使用oracle.manageddataaccess库在Oracle 12数据库上运行CREATE USER查询.此查询在不使用命名参数的情况下完美工作.但是,当我尝试使用命名参数时,看来参数未正确传递到查询. 我尝试使用以下代码的参数(注意:IM使用 oracle.manageddataaccess 库): using(OracleConnection con = new OracleConnection(_connectionString)) { con.Open(); using(OracleCommand cmd = con.CreateCommand()) { cmd.CommandText = "CREATE USER :username IDENTIFIED BY :password"; cmd.Parameters.Add("username", "A_TESTUSER"); cmd.P
6 2024-04-26
编程技术问答社区
有没有什么工具可以帮助我把方法调用从基于位置的参数重构为基于名字的参数?
我希望转换代码: var p = new Person("Ian", "Smith", 40, 16) to: var p = new Person(surname: "Ian", givenName:"Smith", weight:40, age:16) 作为使代码更可读的第一步,如果需要,我愿意使用第三方重构工具. (请不要告诉我使用参数对象和因子方法等,一旦我至少可以读取代码,可能会在以后出现!) 解决方案 重构V2001 vol 1.3 声称能够做到这一点. resharper在问题数据库中具有它,尚未做到这一点. 其他解决方案 将光标放在方法呼叫的括号中 alt+ 或 单击锤子 之后
4 2024-04-19
编程技术问答社区
在C#中把lambda函数作为命名参数来传递
编译此简单程序: class Program { static void Foo( Action bar ) { bar(); } static void Main( string[] args ) { Foo( () => Console.WriteLine( "42" ) ); } } 那里没什么奇怪的.如果我们在lambda功能主体中犯错: Foo( () => Console.LineWrite( "42" ) ); 编译器返回错误消息: error CS0117: 'System.Console' does not contain a definition for 'LineWrite' 到目前为止一切都很好.现在,让我们在调用Foo的呼叫中使用一个命名参数: Foo( bar: () => Console.LineWrite( "42" ) ); 这次,编
4 2024-04-17
编程技术问答社区
当我重新使用一个带有转换功能的SqlCommand时,是否应该调用Parameters.Clear?
我正在用ado.net手动编码事务.我从reuses SqlCommand中工作的示例似乎是一个好主意. 但是,我在命令中添加了参数. 我的问题是:在以下代码中,command.Parameters.Clear()正确吗?还是我做错了? using (var connection = new SqlConnection(EomAppCommon.EomAppSettings.ConnStr)) { connection.Open(); SqlTransaction transaction = connection.BeginTransaction(); SqlCommand command = connection.CreateCommand(); command.Transaction = transaction; try { foreach (var itemIDs in this.SelectedIt
2 2024-04-13
编程技术问答社区
在C#中强制指定参数
c#4引入了一项功能,称为 new nater grom grom 这特别有用在 之类的场景中 int RegisterUser(string nameFirst, string nameLast, string nameMiddle, string email) 有没有办法强制使用命名参数?也许某些属性适用于我不知道的方法或编译器开关?我想可以使用代码检查器工具来完成,但只想知道是否有其他方法. P.S. 对于那些感兴趣的人为什么可能需要它,为什么不只是使用类/结构来利用对象初始化器在某些情况下是不可能的.就像对您无法控制的库或怪异代码约定的呼叫一样. 解决方案 否,不使用C#语言.如果提供了所有参数,它将始终接受位置参数. 您可以构建自定义的fxcop规则或 stylecop Rule 执行此功能 - 如注释中指出的那样,它很可能是Stylecop Rule,您可能是您会对(感谢Kris). 其他解决方案 可以强迫呼叫者始终使用名为args.
8 2024-04-12
编程技术问答社区
这些论据应该被添加还是删除?
当Resharper与自己争论时,如何知道要给哪个角色赋予更多的信任? 我认为我发现了一些确实使人感到困惑的代码(这显然是一个非常不寻常的情况 - 使用了一天后,我认为Resmanper是蜜蜂的膝盖/自从液化面包等以来最大的东西.). 使用此代码线: ICryptoTransform Encryptor = RijndaelCipher.CreateEncryptor(SecretKey.GetBytes(32), SecretKey.GetBytes(16)); resharper告诉我"添加参数名称'rgbkey'" ,然后"添加参数名称'rgbiv'" 这样,该行是: ICryptoTransform Encryptor = RijndaelCipher.CreateEncryptor(rgbKey: SecretKey.GetBytes(32), rgbIV: SecretKey.GetBytes(16)); 不过,当我再次运行重音器时,它说,
6 2024-04-11
编程技术问答社区
有没有一种更好的方法来做c的命名参数?
我正在尝试实现灵活的调试宏/函数lib,命名/可选参数似乎是实现函数的最佳方法. 在C中有更好的方法命名参数吗? ? enum named_args {NAME,ADRESS,AGE,NA_SENTINEL}; void named_arg_initializers(struct person p, enum * named_args) { enum named_args * current_name; enum named_args * current_arg; ... if(named_args==NULL) return; current_name = named_args[0]; current_arg = named_args[1]; while(current_name!=NA_SENTINEL) { current_name+=2; current
6 2024-04-08
编程技术问答社区
Bash函数如何检测它是用位置参数还是命名参数?
我正在编写一个bash函数,该功能可以尝试使用位置或命名参数,在这种情况下,使用getopts访问通常"${2}" "${2}"和命名参数的位置参数. .我有一些示例代码和示例用法,以说明我要做什么.问题在于,我在变量${*}上进行的检查只是字符-的一个grep,它极大地限制了进一步参数的字符内容.在bash中检查命名参数的更聪明或强大的方式是什么? 示例代码: function1(){ # flags argumentsFlag1="" # n: named arguments # p: positional arguments verboseFlag1="0" # v: verbose silentFlag1="0" # 0: standard output # 1: no standard out
10 2024-03-29
编程技术问答社区
ADO参数化查询没有返回任何结果
我正在使用此查询来从经典ASP页面中从我的VBScript中获得一些结果,但它不会带有任何值.该页面是空白的,也没有错误.有什么建议吗? dim cmd, admin_no admin_no = request.QueryString("admin") set cmd = server.CreateObject("ADODB.Command") cmd.ActiveConnection = con sql = "" sql = sql & "DECLARE @admin_no int;" sql = sql & "SELECT field1, field2 FROM mydb.mytable where admin_no = @admin_no" cmd.CommandText = sql cmd.CommandType = adCmdText cmd.Parameters.Append cmd.CreateParameter("@admin_no", adInteger, ad
6 2024-03-16
编程技术问答社区
在经典ASP中从ADODB调用一个参数化的Oracle查询
我目前正在研究与Oracle数据库对话的经典ASP项目.我正在尝试找到一种方法来安全地调用Oracle PL/SQL脚本并使用ADO传递参数.当前的解决方案通过像这样的嵌入式变量手动构建SQL脚本: strSQL = "SELECT field1, etc FROM my_table WHERE (field = '" & filter_value & "')" 当然,这是丑陋和不安全的,对虐待开放. 我到目前为止拥有的代码(从各种非经典ASP网站上窃取)看起来像这样: dim strSQL, oConn, oCommand, oParam set oConn = server.createobject("ADODB.Connection") oConn.Open myConnString strSQL = "SELECT field1, etc FROM my_table WHERE (field = :filter_field)" dim oFiltered
6 2024-03-16
编程技术问答社区
当命令类型为adCmdText时,是否可以使用命名参数?
我试图通过adodb.command的查询使用命名的参数,但没有运气. Select * From mytable Where col1 = Lower(@param1) And col2 = Upper(@param2) And col3 = @param1 我使用了这样的代码. Dim cmd Set cmd = Server.CreateObject("Adodb.Command") cmd.NamedParameters = True cmd.CommandType = adCmdText cmd.CommandText = "Select * From mytable Where col1 = Lower(@param1) And col2 = Upper(@param2) And col3 = @param1" cmd.Parameters.Append cmd.CreateParameter("@param1", adVarchar, adParamInpu
26 2024-03-16
编程技术问答社区
名义参数列表解析前的位置分析
您将如何在解析器组合中做到这一点 def namedAfterPos[P, N](pos: Parser[P], nmd: Parser[N], sep: Parser[_] = ",") = ??? List("a", "a,a,a", "a,a,a=b,a=b", "a=b, a=b") map (_ parseWith namedAfterPos("a", "a=b")) map {case Success(res, _) => res} val Failure("positional is not expected after named", pos) = "a,a=b,a" parseWith namedAfterPos("a", "a=b") 解决方案 好吧,这是大脑方法 scala> def namedAfterPos[P, N](pos: Parser[P], nmd: Parser[N], sep: Parser[_] = ",") = { /
22 2024-03-03
编程技术问答社区
C# 4.0的新 "命名参数 "功能不是应该叫做 "命名参数 "吗?
我想这个命名可能存在历史原因,并且其他语言具有类似的功能,但在我看来,参数在C#中总是有名字.争论是未命名的.还是选择了此术语的特殊原因? 解决方案 是的,您绝对正确(无论如何,无论如何).具有讽刺意味的是,尽管我通常对这些术语很挑剔,但是当我可能应该谈论"参数传递"时,我仍然使用"参数传递".我想一个人可能会争辩说,如果您调用了一种方法,则不在乎参数名称,而当您也可以在参数上指定它们时,名称成为重要的元数据的一部分. 我同意这有所不同,术语很重要. "可选参数"肯定还可以 - 当您以前做不到时,这是在参数中添加元数据:/p> 您要我向团队寻求他们的反馈吗? 其他解决方案 哦,您想要参数!抱歉,这是参数 - 参数是左侧大厅的两个门. 其他解决方案 我不这么认为.这些名称绝对是参数的名称,因为它们被定义并给出了方法定义中的特定含义,其中将它们正确称为该方法的参数.在呼叫网站上,现在可以用他们提供的参数名称标记. 新术语是指方法呼叫者的观点 - 这是合
2 2024-03-03
编程技术问答社区
我如何向Rake任务传递命名参数?
有没有使用环境变量的方法将命名的参数传递给耙任务? 我知道耙任务可以接受两种格式的参数: 环境变量 $ rake my_task foo=bar 这将创建一个带有名称foo的环境变量,并且可以在Rake Task my_task中访问的值bar ENV['foo']. . 耙任务参数 $ rake my_task['foo','bar'] 这将值foo和bar传递给前两个任务参数(如果定义).如果my_task被定义为: task :my_task, :argument_1, :argument_2 然后argument_1将具有值foo和argument_2具有值bar. 解决方案 您可以说这样的话: rake some_task -- --arg=value 然后,在您的任务内,ARGV将为 [ 'some_task', '--arg=value' ] 因此,您可以使用使用标准环境变量方法,您可能会更好,它并不
2 2024-03-03
编程技术问答社区
普通参数与关键字参数
"关键字参数"与常规参数有何不同?不能以name=value而不是使用位置语法? 传递所有参数 解决方案 有两个相关的概念,两个概念都称为" 关键字参数". 在呼叫方面,这是其他评论者提到的,您可以通过名称指定某些函数参数.您必须在所有没有名称的参数(位置参数)之后提及它们,并且对于根本没有提及的任何参数,必须有默认值. 另一个概念在函数定义方面:您可以定义一个按名称获取参数的函数 - 甚至不必指定这些名称是什么.这些是纯关键字参数,不能定位地传递.语法是 def my_function(arg1, arg2, **kwargs) 您传递到此功能的任何关键字参数都将放入名为kwargs的字典中.您可以在运行时检查该字典的键,例如: def my_function(**kwargs): print str(kwargs) my_function(a=12, b="abc") {'a': 12, 'b': 'abc'} 其他解决方案 有一个
18 2024-03-03
编程技术问答社区
命名的和可选的参数,以及WCF
so .net 4添加了命名和可选参数,它们非常甜.我不需要做出那么多1行超载方法. 该可以通过WCF使用? 解决方案 由于这些是编译器语义,所以我会说不.但是,您希望它们以唯一的以下方式工作. 在服务代码方面,所有代码都将接受默认参数. 在客户端我注意到,VS2010上的"添加服务参考"工具不需要默认设置,并将其添加到生成的代理中.因此,您必须生成自己的代理. 如果客户端侧合同实现中指定了默认值,则客户端代码可以使用默认值. i将对命名参数也是如此. 总的来说,但是这些东西不是在WCF上携带的.所有发生的事情是客户端代理必须以适当的参数发送到频道工厂. 其他解决方案 WSDL无法描述可选参数,因此答案是"否". 其他解决方案 我正在使用VS 2017,.NET 4和一个WCFService项目,我得到了这样的服务: 接口: namespace MyServiceNamespace { [ServiceContrac
14 2024-01-07
编程技术问答社区
我可以在ironpython中使用命名参数和可选参数吗?
我希望在Ironpython中加载.net dll. 但是.NET DLL中的静态函数之一,具有一些命名和可选的参数. 喜欢,绘制(重量:W,高度:H,区域= 1) 我只能使用完整的参数? 解决方案 命名和可选参数得到了充分支持. .新的C#语法映射到与旧VB支持的同一基础元数据. 用于调用您使用f(x = 42),这是python的命名参数语法.对于可选参数,您只需将它们排除在外即可.在您的示例情况下,您可能会绘制(重量,高度)并将区域排除在外.或者,您可以将重量和高度称为命名参数,然后将区域排除在外. Ironpython寻找的基础.NET元数据是可选的attribute或DefaultParametervalueAttribute.对于可选,我们通过默认值(t)传递,除非类型为对象,在这种情况下,我们会传递丢失.这通常与反射如何称为这些API. 其他解决方案 AS 这个问题说,新命名的论点说. Ironpython不支持NET(将命名的
12 2024-01-06
编程技术问答社区
C#中的命名参数和params关键字
我有一个C#方法,其中具有可变长度参数列表,使用params关键字声明: public void VariableLengthParameterFunction (object firstParam, params object[] secondParam) 调用该方法时是否有任何方法可以使用命名参数? 解决方案 您可以使用以下名称参数调用它: VariableLengthParameterFunction( secondParam: new object[] { 5, 7, 3, 2 }, firstParam: 4); 其他解决方案 编辑:我以为您要使用名为参数访问params object[] secondParam数组. 当前只有该方法内的代码知道secondParam可能包含的代码.仅从方法签名中,该数组中的每个元素的object[]
4 2024-01-05
编程技术问答社区
如何定义命名的参数C#
这似乎是一个简单的问题,但是由于某种原因,我在任何地方都找不到答案.基本上,我希望能够实现一个构建器,该构造函数 nateParameters . 通过命名参数,我不是指具有默认值(可选参数)的参数,例如: public SomeMethod(){ string newBar = Foo(bar2 : "customBar2"); } public string Foo(string bar1 = "bar1", bar2 = "bar2" ){ //... } 我要实现的一个很好的例子是 oferizeattribute 来自 system.web.mvc 汇编.您可以使用以下方式: [Authorize(Roles = "Administrators", Users = "ThatCoolGuy")] public ActionResult Admin(){ } IntelliSense中构造函数的签名看起来像以下示例,我相信(请确认)
4 2024-01-04
编程技术问答社区