JS 调用存储过程传递参数
引用
#region 程序集 Newtonsoft.Json.dll, v4.5.0.0
// E:\Newtonsoft.Json.dll
#endregion
public DataTable RunProc(string ProcName, string Parameter)
{
try
{
db = new DataBaseDoor(GetConnection.getcon());
DataSet ds = new DataSet();
JsonTextReader JR = new JsonTextReader(new StringReader(Parameter));
int i = ; while (JR.Read())
{
if(JR.Value!=null&&JR.Value.ToString()!=",")
{
i++;
}
//JR.TokenType;
// JR.Value;
// JR.ValueType;
}
SqlParameter[] para = new SqlParameter[i/]; JsonTextReader JTR = new JsonTextReader(new StringReader(Parameter)); int j = ;
string key = "";
string value = "";
while (JTR.Read())
{ if (JTR.Value != null && JTR.Value.ToString() != ",")
{
if (j <= i)
{
if (j % == )
{ key = "";
if (JTR.Value != null)
{
key = JTR.Value.ToString().Replace("!@!", "\"");
}
}
else
{
value = "";
if (JTR.Value != null)
{
value = JTR.Value.ToString().Replace("!@!", "\"");
para[((j+)/)-] = new SqlParameter("@" + key, value);
}
} }
j++;
}
}
db.RunProcedure(ProcName, para, ref ds); return ds.Tables[];
}
catch (Exception ex)
{
throw ex;
}
finally
{
db.CloseConnection();
}
}
//JS调用 以及字符串特殊字符替换规则 var parameter = "{ ID:" + ID + ",Name:'" + $.trim($('#txt_groupname').val()).replace(/"/ig, '!@!') + "'}"; var result = RunNewProc('sp_UserLevel_AddGroupName', parameter); function RunNewProc(procname, Parameter) { if (procname.length > ) {
var returnmsg = ErpAjax("/RunProcedure.aspx?Proc=" + procname + "&Parameter="+Parameter+"");
if (returnmsg.length > ) {
return returnmsg;
}
else {
return '操作失败';
}
}
} function ErpAjax(url) {
var xmlhttp;
if (url.indexOf("?") > ) {
url = url + "&NowDateTimeSign=" + new Date().getTime();
}
else {
url = url + "?NowDateTimeSign=" + new Date().getTime();
}
if (window.ActiveXObject) {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
else {
xmlhttp = new XMLHttpRequest();
} var url1 = url.split('?');
var url2 = url1[].toString().split('&'); var furl = url1[].toString() + "?"; for (var i = ; i < url2.length; i++) {
var j = url2[i].indexOf('='); if (i == ) {
furl += url2[i].toString().substring(, j) + "=" + encodeURIComponent(url2[i].toString().substring(j + ));
}
else {
furl += "&" + url2[i].toString().substring(, j) + "=" + encodeURIComponent(url2[i].toString().substring(j + ));
}
}
//encodeURIComponent
xmlhttp.open("POST", furl, false); xmlhttp.send();
return xmlhttp.responseText; }
JS 调用存储过程传递参数的更多相关文章
- 【HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- 【HANA系列】【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第六篇]SAP HANA XS ...
- SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...
- js与php传递参数
这个问题在网页开发时经常遇到,其实解决办法非常简单,就是几行代码的事,不过各种js.php书上都没有,百度下来也乱七八糟的,有的能用,有的不能用.小编遇到这问题时认认真真研究了一上午,研究出一点心得, ...
- js跳转传递参数
额,利用j获取了GridView中选中行数据后,通过JavaScript做跳转,传递参数的时候发现,当参数有中文的时候就会乱码, 当然出现这种情况的时候就需要对跳转的url进行编码 var urlX ...
- vue.js中路由传递参数
知识点:vue路由传递参数,第二个页面(A.B页面)拿到参数,使用参数 方法一:使用 <router-link :to="{name:'edithospital',params:{hi ...
- js获取url传递参数(转的,原作不详)
这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET 函数: <Script languag ...
- hibernate 调用存储过程返回参数
Connection conn= getSession().connection(); CallableStatement cs=null; //指定调用的存储过程 cs = conn.prepare ...
- Java调用函数传递参数到底是值传递还是引用传递
今天翻看微信上有关Java技术的公众号时,看到了一篇关于Java中值传递的问题,文章讨论了在Java中调用函数进行传参的时候到底是值传递还是引用传递这个面试时会问到的问题.之前也接触过类似的问题,但只 ...
随机推荐
- iphone之打开pdf、doc、xls文件用UIWebView
//文件名字及类型 NSString *path=[[NSBundle mainBundle]pathForResource:@"xls1" ofType:@"xls&q ...
- C#调用Lame.exe
string lameEXE = @"D:\lame3.100\lame.exe"; string lameArgs = "-b 128"; string wa ...
- Unity之脚本编译顺序
根据官方的解释,它们的编译顺序如下: (1)所有在Standard Assets.Pro Standard Assets或者Plugins文件夹中的脚本会产生一个Assembly-CSharp-fil ...
- HDU 6069 Counting Divisors(区间素数筛法)
题意:...就题面一句话 思路:比赛一看公式,就想到要用到约数个数定理 约数个数定理就是: 对于一个大于1正整数n可以分解质因数: 则n的正约数的个数就是 对于n^k其实就是每个因子的个数乘了一个K ...
- HDU 6041 I Curse Myself(点双联通加集合合并求前K大) 2017多校第一场
题意: 给出一个仙人掌图,然后求他的前K小生成树. 思路: 先给出官方题解 由于图是一个仙人掌,所以显然对于图上的每一个环都需要从环上取出一条边删掉.所以问题就变为有 M 个集合,每个集合里面都有一堆 ...
- 【page-monitor 前端自动化 中篇】 源码分析
转载文章:来源(靠谱崔小拽) 上篇中初探了page-monitor的一些功能和在前端自动化测试方面的可行性,本篇主要分析下page-monitor的实现方式和源码. mode-module简介 pag ...
- C++ C++ 值传递、指针传递、引用传递详解
这一篇博客写的不错: https://www.cnblogs.com/dingxiaoqiang/p/8012578.html
- Bootstrap历练实例:分页状态
分页的状态 下面的实例演示了上表中所讨论的 class .disabled..active 的用法: <!DOCTYPE html><html><head>< ...
- Bootstrap历练实例:点击激活的按钮
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...
- TCP头校验和计算算法详解
我就不管是按“位”(bit)取反相加,还是 按“1的补码”相加了,总之就是把需要进行校验的“字串”加(+)起来,把这相加的 结果取反当做“校验和” (Checksum), 比如,相加的结果是0101, ...