以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQL参数能获取最后生成的SQL语句吗  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144048)

--  作者:blackzhu
--  发布时间:2019/12/9 16:47:00
--  SQL参数能获取最后生成的SQL语句吗
cmd.Parameters.Add 能获取生成的SQL语句吗?


我检查半天,老说我索引数组不对!

--  作者:有点蓝
--  发布时间:2019/12/9 16:53:00
--  
Parameters.Add的次数和?号的个数数量必须一致。使用的是access还是SqlServer?完整代码发上来看看
--  作者:blackzhu
--  发布时间:2019/12/9 16:55:00
--  
 mysql = mysql.Replace("Sel     ect * from", "Insert Into").Replace("员工管理", "员工管理 (部门,姓名,联系电话,功能角色,权限组,折扣权限,科室, 序号,数据量,备注,用户名,分院,GUID,状态,员工编号,创建人,创建时间,密码,是否为开发者,权限组GUID,远程链接,总院) Values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
                Else
                    mysql = "Sel       ect * from HIS_CESHI.dbo.员工管理 WHERE 1=2"
                End If
                MsgBox(mysql)

                cmd.CommandText = mysql
                cmd.Parameters.Add("@部门", e.Values("bm")) \'1
                cmd.Parameters.Add("@姓名", e.Values("name")) \'2
                cmd.Parameters.Add("@联系电话", e.Values("phone")) \'3
                cmd.Parameters.Add("@功能角色", e.Values("gnjs")) \'4
                cmd.Parameters.Add("@权限组", e.Values("qxz")) \'5
                cmd.Parameters.Add("@折扣权限", e.Values("zkqx")) \'6
                cmd.Parameters.Add("@科室", e.Values("ks")) \'7
                cmd.Parameters.Add("@序号", e.Values("xh")) \'8
                cmd.Parameters.Add("@数据量", e.Values("sjl")) \'9
                cmd.Parameters.Add("@备注", e.Values("beizhu")) \'10
                cmd.Parameters.Add("@用户名", MyPublicM.GetSumPy(e.Values("name"))) \'10
                cmd.Parameters.Add("@分院", fy) \'12
                cmd.Parameters.Add("@GUID", System.Guid.NewGuid.ToString.Replace("-", Nothing)) \'13
                cmd.Parameters.Add("@状态", "待定") \'14
                cmd.Parameters.Add("@员工编号", "YG" & Format(JiChuClass.ServerTime, "yyMMddhhmmss") & Rand.Next(1, 100)) \'15
                cmd.Parameters.Add("@创建人", "朱健") \'16
                cmd.Parameters.Add("@创建时间", JiChuClass.ServerDate) \'17
                cmd.Parameters.Add("@密码", "#9876") \'18
                If e.Values("kfz") > "" AndAlso e.Values("kfz") = "是" Then
                    cmd.Parameters.Add("@是否为开发者", "1") \'19
                Else
                    cmd.Parameters.Add("@是否为开发者", "0")
                End If
                cmd.Parameters.Add("@权限组GUID", GetQxID(fy, e.Values("qxz"))) \'20
                cmd.Parameters.Add("@远程链接", GetYC(fy)) \'21
                cmd.Parameters.Add("@总院", GetZy(fy)) \'22
                If cmd.ExecuteNonQuery() > 0 Then
                    e.WriteString("新增了一个员工")
                Else
                    e.WriteString("新增员工失败")
                End If


我将?全部替换成1 可以执行,但是添加了参数以后,报了这么一个错误:


在oEy_Table1_UAdd代码段,在2019-12-09 16:45:12.2599
索引超出了数组界限。
   在 Foxtable.DataRowCollection.get_Item(Int32 Index)
   在 InvoicingSystem.Employee.GetQxID(String fy, String QXZ)
   在 InvoicingSystem.Employee.oEy_Table1_UAdd(RequestEventArgs e)



检查了半天没问题呀

--  作者:blackzhu
--  发布时间:2019/12/9 16:55:00
--  

Insert Into opendatasource(\'SQLOLEDB\',\'服务器\').shanghai.dbo.员工管理 (部门,姓名,联系电话,功能角色,权限组,折扣权限,科室, 序号,数据量,备注,用户名,分院,GUID,状态,员工编号,创建人,创建时间,密码,是否为开发者,权限组GUID,远程链接,总院) Values(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)

这样可以执行的

--  作者:blackzhu
--  发布时间:2019/12/9 17:03:00
--  
等等 我知道了 应该是函数错了