这是今天下午忙活半天的成果,但不管怎样吧还是达到了想要的目的:通过集合数据自动添加SqlParameter参数到Command命令中。
思路很明确,也很简单,大致的可以分两步。
第一步,将用户输入的存储过程参数写入到一个SqlParameter集合数组中;
第二步,将SqlParameter集合数组中的参数元素导入到Command命令的Parameters集合中。
接下来要做的是分别实现这两步,在第一步中涉及到了vb.net的往数组中写参数的问题,第一次写这个程序,稍微遇到了一些麻烦。第二步中要注意参数类型的问题,正确的代码应该是这样的:
cmd.Parameters.Add(parameters(i))
下面的语句就会出现因参数类型不符,而导致无法传值的错误:
cmd.Parameters.Add(parameters(i).Value)
针对这样的问题,细心是必须的,但是遇到错误后积极去研究程序的出错原因,对症下药,也是非常重要的。
这里重点说说第一步中如何将用户输入的存储过程的参数,参数类型,参数值传入到集合中。如果直接引用vb.net提供的SqlParameter方法,默认情况下你需要去匹配编译器默认的参数,使用起来不仅不方便,而且还容易出错,因此,就需要自己重新定义一个类完成相似的效果,这里与重写差不多,但并不是重写,因为方法名是自己定义的。
实现如下:先添加一个新的类叫PublicMethod,并在此类中添加一个Param方法,通过这个方法来自定义用户输入格式,把代码贴出来:
Imports System.Data.SqlClient
Public Class PublicMethod
''' <summary>
''' 创建一个包含参数名、参数类型、参数值的SqlParameter
''' </summary>
''' <param name="pameterName">参数名</param>
''' <param name="dbType">参数类型</param>
''' <param name="pameterValue">参数值</param>
'