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中调用函数进行传参的时候到底是值传递还是引用传递这个面试时会问到的问题.之前也接触过类似的问题,但只 ...
随机推荐
- 基于Servlet+smartUpload的文件上传
文件上传在web应用中是非常常见的,现在我就介绍下基于servlet的文件上传,基于Struts2的文件上传可以看: 页面端代码: <%@ page language="java&qu ...
- P1809 过河问题_NOI导刊2011提高(01)
题目描述 有一个大晴天,Oliver与同学们一共N人出游,他们走到一条河的东岸边,想要过河到西岸.而东岸边有一条小船. 船太小了,一次只能乘坐两人.每个人都有一个渡河时间T,船划到对岸的时间等于船上渡 ...
- 浅析document和window的区别
1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2 ...
- OpenWrite方法打开现有文件并进行写入
实现效果: 知识运用: File类的OpenWrite方法 //实现打开现有文件以进行写入 public static FileStream OpenWrite (string path) Encod ...
- ftl-server静态资源服务器
ftl-server 是一前端开发工具,支持解析freemarker模板,模拟后端接口,反向代理等功能. 特性 解析freemarker模板 静态资源服务 mock请求 代理请求 livereload ...
- 爬虫4_python2
import urllib2 response = urllib2.urlopen("https://www.baidu.com") print response.read() 构 ...
- 五、Pandas玩转数据
Series的简单运算 import numpy as np import pandas as pd s1=pd.Series([1,2,3],index=['A','B','C']) print(s ...
- VIM C语言函数名高亮
VIM默认情况下,函数名是不会高亮的,将下面这段代码添加到/usr/share/vim/vim73/syntax/c.vim文件的末尾即可: "highlight Functions s ...
- jpeg和jpg的区别是什么
JPG是JPEG的简写,jpg是后缀名,jpeg既可作为后缀名,又能代表文件格式:JPG——JPEG文件格式. 我们在系统自带的画图程序里保存文件,在保存类型:JPEG(*.JPG,*.JPEG,*. ...
- ios 序列化
1到底这个序列化有啥作用? 面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中(来源于某教材的一 ...