//using BasicData;
//using BizDataAccess;
//using LitJson;
using BasicData;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
namespace DataLinkMesWork
{
public partial class DataLink
{
///
/// 1、执行存储过程,存储过程返回查询结果表,表以JSON字符串返回给页面。
/// 输入参数:参数名称1&参数&参数类型|参数名称1&参数&参数类型
///
///
///
public static string ExePROCEDURE_Type1_Bakup(jsonobj json)
{
string[] parmas;
string[] names;
SqlParameter[] thisParms = null;
string result = "";
bool isOK;
bool isOutput = false;
DataSet ds = null;
DataTable dt1 = null;
try
{
names = json.Name.Split('&');
string name;
name = names[0];
if (json.Param == "" || json.Param == null)//执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(name, connectionStringBakup, ref thisParms, out ds, out result);
}
else//执行有参数的存储过程
{
parmas = json.Param.Split('&');
thisParms = new SqlParameter[parmas.Length];
SQLCommon.GetCmdParam(json, ref thisParms, out isOutput);
isOK = SQLCommon.ExecuteStoredProcedure(name, connectionStringBakup, ref thisParms, out ds, out result);
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
///
/// 1、执行存储过程,存储过程返回查询结果表,表以JSON字符串返回给页面。
/// 输入参数:参数名称1&参数&参数类型|参数名称1&参数&参数类型
///
///
///
public static string ExePROCEDURE_Type1_Bakup(jsonobj json,out DataTable dt)
{
string[] parmas;
string[] names;
SqlParameter[] thisParms = null;
string result = "";
bool isOK;
bool isOutput = false;
dt = new DataTable();
DataSet ds = null;
DataTable dt1 = null;
try
{
names = json.Name.Split('&');
string name;
name = names[0];
if (json.Param == "" || json.Param == null)//执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(name, connectionStringBakup, ref thisParms, out ds, out result);
}
else//执行有参数的存储过程
{
parmas = json.Param.Split('&');
thisParms = new SqlParameter[parmas.Length];
SQLCommon.GetCmdParam(json, ref thisParms, out isOutput);
isOK = SQLCommon.ExecuteStoredProcedure(name, connectionStringBakup, ref thisParms, out ds, out result);
if (ds != null && ds.Tables.Count > 0)
{
dt = ds.Tables[0];
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
///
/// type = 2 Insert
///
///
///
public static string ExePROCEDURE_Type2_Bakup(jsonobj json)
{
string[] parmas;
SqlParameter[] thisParms = null;
string result = "";
bool isOK;
bool isOutput = false;
try
{
if (json.Param == "" || json.Param == null)//执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(json.Name, connectionStringBakup, ref thisParms, out result);
}
else//执行有参数的存储过程
{
parmas = json.Param.Split('&');
thisParms = new SqlParameter[parmas.Length];
SQLCommon.GetCmdParam(json, ref thisParms, out isOutput);
isOK = SQLCommon.ExecuteStoredProcedure(json.Name, connectionStringBakup, ref thisParms, out result);
}
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
///
/// Type = 3
///
///
///
public static string ExePROCEDURE_Type3_Bakup(jsonobj json)
{
string result = "[{ \"result\":\"0\"}]";
bool isOK;
if (json.Name != null)
{
DataTable dt = null;
try
{
isOK = SQLCommon.ExecuteDataTable(json.Name, connectionStringBakup, out dt, out result);
if (isOK)
{
if (dt != null)
{
result = JsonHelper.DataTableToJson(dt);
}
}
else
{
result = "[{ \"result\":\"0\"}]";
}
}
catch (Exception ex)
{
result = "[{ \"result\":\"0\"}]";
}
}
return result;
}
///
/// Type = 3
///
///
///
public static string ExePROCEDURE_Type3_Bakup(jsonobj json,out DataTable dt)
{
string result = "[{ \"result\":\"0\"}]";
bool isOK;
dt = new DataTable();
if (json.Name != null)
{
try
{
isOK = SQLCommon.ExecuteDataTable(json.Name, connectionStringBakup, out dt, out result);
if (isOK)
{
result = "[{ \"result\":\"0\"}]";
}
else
{
result = "[{ \"result\":\"0\"}]";
}
}
catch (Exception ex)
{
result = "[{ \"result\":\"0\"}]";
}
}
return result;
}
///
/// type = 4
///
///
///
public static string ExePROCEDURE_Type4_Bakup(jsonobj json)
{
string result = "[{ \"result\":\"0\"}]"; ;
bool isOK;
if (json.Name != null)
{
try
{
isOK = SQLCommon.ExecuteNonQuery(json.Name, connectionStringBakup, out result);
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
}
else
{
result = "[{ \"result\":\"0\"}]";
}
}
catch (Exception ex)
{
result = "[{ \"result\":\"0\"}]";
}
}
return result;
}
///
/// type=5
///
///
///
public static string ExePROCEDURE_Type5_Bakup(jsonobj json)
{
string result = "";
DataSet ds = null;
try
{
if (json.Param == "" || json.Param == null)//执行没有参数的存储过程
{
SQLCommon.ExecuteStoredProcedure(json.Name, connectionStringBakup, out ds, out result);
}
else//执行有参数的存储过程
{
string[] parmas;
SqlParameter[] thisParms;
try
{
parmas = json.Param.Split('|');
thisParms = new SqlParameter[parmas.Length];
for (int i = 0; i < parmas.Length; i++)
{
string[] pp = parmas[i].Split('&');
object inputValue = null;
if (pp.Length == 3)
{
switch (pp[2])
{
case "Int":
inputValue = Convert.ToInt32(pp[1]);
break;
case "String":
inputValue = pp[2];
break;
case "Boolean":
inputValue = Convert.ToBoolean(pp[1]);
break;
case "DateTime":
inputValue = Convert.ToDateTime(pp[1]);
break;
default:
inputValue = pp[1];
break;
}
thisParms[i] = new SqlParameter(pp[0], inputValue);
}
else if (pp.Length == 2)
{
thisParms[i] = new SqlParameter(pp[0], pp[1]);
}
}
}
catch (Exception)
{
return result = "参数有误,请检查参数的格式是否正确";
}
SQLCommon.ExecuteStoredProcedure(json.Name, connectionStringBakup, ref thisParms, out ds, out result);
}
if (ds != null && ds.Tables.Count > 0)
{
result = "[{ \"result\":\"1\"}]";
}
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
///
/// 7 vue格式Excel 导入到创建并表中
///
///
///
public static string ExePROCEDURE_Type7_Bakup(JsonData json)
{
string result = "";
bool isOK = false;
JsonData jsonDataName;
JsonData jsonDataParam;
JsonData jsonDataParamRow;
string name;
try
{
{
string type1;
string name1;
JsonData param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData_Type7(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
name = jsonDataName.ToString();
using (SqlConnection conn = new SqlConnection(connectionStringBakup))
{
try
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(name, conn))
{
cmd.CommandTimeout = 0;
cmd.CommandType = CommandType.Text;
#region 首先删除并重建表
string createTableStr_key1 = "";
foreach (KeyValuePair jParamData in jsonDataParam[0])
{
createTableStr_key1 = createTableStr_key1 + "[" + jParamData.Key + "]" + " nvarchar(max),";
}
createTableStr_key1 = createTableStr_key1.TrimEnd(',');
//判断表是否存在,存在则删除重建,不存在直接重建
string dropsql = " if exists(select * from sysobjects where id = object_id(N'[" + name + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)" +
" begin "
+ " DROP TABLE " + name
+ " CREATE TABLE " + name
+ "(" + " TableId int identity(1,1), " + createTableStr_key1 + ")"
+ " end "
+ " else "
+ " begin "
+ " CREATE TABLE " + name
+ "(" + " TableId int identity(1,1), " + createTableStr_key1 + ")"
+ " end ";
//DataAccess.ExecuteSQL(dropsql);
cmd.CommandText = dropsql;
cmd.ExecuteNonQuery();
#endregion
#region 循环插入数据
for (int i = 0; i < jsonDataParam.Count; i++)
{
jsonDataParamRow = jsonDataParam[i];
string sqlInert;//sql字符串
string createTableStr_key = null;//列
string createTableStr_value = null;//值
sqlInert = "INSERT INTO " + name + "(";
foreach (KeyValuePair jParamData in jsonDataParamRow)
{
createTableStr_key = createTableStr_key + "[" + jParamData.Key + "]" + ",";
createTableStr_value = createTableStr_value + "'" + jParamData.Value.ToString().Replace("'", "''") + "'" + ",";
}
createTableStr_key = createTableStr_key.TrimEnd(',');
createTableStr_value = createTableStr_value.TrimEnd(',');
sqlInert += createTableStr_key + ")" + "values" + "(";
sqlInert += createTableStr_value + ")";//最终sql字符串
cmd.CommandText = sqlInert;
cmd.ExecuteNonQuery();
}
#endregion
}
isOK = true;
}
catch (Exception e)
{
// errorMessage = e.ToString();
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
}
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// 1001
/// "UserID": $("#UserID").val(),
/// "Type": $("#TYPE").val(),
/// "Name": $("#NAME").val(),
/// "Param": $("#PARAM1value").val(),
/// "Pagination": $("#Pagination").val(),
/// HasReturn: $("#HASRETURN").get(0).checked
///
///
///
public static string ExecuteInsertMesWork_Bakup(JsonData json)
{
SqlParameter thisParms = null;
string result = "";
bool isOK = false;
bool isOutput = false;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称 Sql
JsonData jsonDataParam;//存储过程参数
long outputID = 0;
SqlParameter[] param = null;
string err;
List ilistSqlParameterStr = new List();
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转为JSON格式
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteInsertMesWork(jsonDataName.ToString(), ref param, connectionStringBakup, out err);
}
else//执行有参数的存储过程
{
//thisParms = new []SqlParameter();
//thisParms = new SqlParameter[jsonData.Count];
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
if (name == "output")
{
isOutput = true;
}
else
{
thisParms = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output"))
{
if(jsonData[i]["output"]!=null)
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
}
if (jsonData[i].ContainsKey("type"))
{
if(jsonData[i]["type"] != null)
{
type = jsonData[i]["type"].ToString();// 参数类型
object inputValue = null; ;
inputValue = GetInputValue(type, output);
thisParms = new SqlParameter(name, inputValue);
}
}
if (output == "1")
{
thisParms.Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
ilistSqlParameterStr.Add(thisParms);
}
}
if (ilistSqlParameterStr.Count > 0)
{
param = ilistSqlParameterStr.ToArray();
}
if (isOutput)
{
isOK = SQLCommon.ExecuteInsertMesWork(jsonDataName.ToString(), ref param, connectionStringBakup, out outputID,out err);
}
else
{
isOK = SQLCommon.ExecuteInsertMesWork(jsonDataName.ToString(), ref param, connectionStringBakup, out err);
}
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// 1002
/// select * from Test where f1=@f1
/// [{\"name\":\"@f1\",\"value\":\"T002\"}]
/// "UserID": $("#UserID").val(),
/// "Type": $("#TYPE").val(),
/// "Name": $("#NAME").val(),
/// "Param": $("#PARAM1value").val(),
/// "Pagination": $("#Pagination").val(),
/// HasReturn: $("#HASRETURN").get(0).checked
/// {"type":"1002","name":"select * from Test where f1=@f1 ","param":"[{\"name\":\"@f1\",\"value\":\"T002\"}]"}
///
///
///
public static string ExecuteSelectMesWork_Bakup(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
DataTable dt = null;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称 Sql
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
string err;
isOK = SQLCommon.ExecuteSelectMesWork(jsonDataName.ToString(), ref thisParms, connectionStringBakup, out dt,out err);
}
else//执行有参数的存储过程
{
thisParms = new SqlParameter[jsonData.Count];//定义参数个数
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
//string value = jsonData[i]["value"].ToString();// 参数值
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output"))
{
if(jsonData[i]["output"] != null)
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
}
if (jsonData[i].ContainsKey("type"))
{
if(jsonData[i]["type"] != null)
{
type = jsonData[i]["type"].ToString();// 参数类型
object inputValue = null; ;
inputValue = GetInputValue(type, value);
thisParms[i] = new SqlParameter(name, inputValue);
}
}
if (output == "1")
{
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
string err;
isOK = SQLCommon.ExecuteSelectMesWork(jsonDataName.ToString(), ref thisParms, connectionStringBakup, out dt,out err);
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// "UserID": $("#UserID").val(),
/// "Type": $("#TYPE").val(),
/// "Name": $("#NAME").val(),
/// "Param": $("#PARAM1value").val(),
/// "Pagination": $("#Pagination").val(),
/// HasReturn: $("#HASRETURN").get(0).checked
///
///
///
///
public static string ExecuteSelectMesWork_Bakup(JsonData json,out DataTable dt)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
dt = new DataTable();
JsonData jsonData;
JsonData jsonDataName;//存储过程名称 Sql
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
string err;
isOK = SQLCommon.ExecuteSelectMesWork(jsonDataName.ToString(), ref thisParms, connectionStringBakup, out dt,out err);
}
else//执行有参数的存储过程
{
thisParms = new SqlParameter[jsonData.Count];//定义参数个数
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
//string value = jsonData[i]["value"].ToString();// 参数值
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output") )
{
if(jsonData[i]["output"] != null)
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
}
if (jsonData[i].ContainsKey("type"))
{
if(jsonData[i]["type"] != null)
{
type = jsonData[i]["type"].ToString();// 参数类型
object inputValue = GetInputValue(type, value);
thisParms[i].Value = inputValue;
}
}
if (output == "1")
{
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
string err;
isOK = SQLCommon.ExecuteSelectMesWork(jsonDataName.ToString(), ref thisParms, connectionStringBakup, out dt,out err);
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// 11 存储过程方式查询
/// 查询 采用新协议 例:{"type":"11","name":"存储过程","param":"[{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]"}
/// "UserID": $("#UserID").val(),
/// "Type": $("#TYPE").val(),
/// "Name": $("#NAME").val(),
/// "Param": $("#PARAM1value").val(),
/// "Pagination": $("#Pagination").val(),
/// HasReturn: $("#HASRETURN").get(0).checked
///
///
///
public static string ExePROCEDURE_Type11_Bakup(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
DataSet ds = null;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else//执行有参数的存储过程
{
thisParms = new SqlParameter[jsonData.Count];//定义参数个数
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
//string value = jsonData[i]["value"].ToString();// 参数值
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output"))
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
if (jsonData[i].ContainsKey("type"))
{
type = jsonData[i]["type"].ToString();// 参数类型
}
if (output == "1")
{
object inputValue = null; ;
inputValue = GetInputValue(type, output);
thisParms[i] = new SqlParameter(name, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// 11 存储过程方式查询
/// 查询 采用新协议 例:{"type":"11","name":"存储过程","param":"[{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]"}
/// "UserID": $("#UserID").val(),
/// "Type": $("#TYPE").val(),
/// "Name": $("#NAME").val(),
/// "Param": $("#PARAM1value").val(),
/// "Pagination": $("#Pagination").val(),
/// HasReturn: $("#HASRETURN").get(0).checked
///
///
///
public static string ExePROCEDURE_Type13_Bakup(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
DataSet ds = null;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
if (jsonDataParam == null)
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else
{
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else//执行有参数的存储过程
{
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
thisParms = new SqlParameter[jsonData.Count];//定义参数个数
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
//string value = jsonData[i]["value"].ToString();// 参数值
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output"))
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
if (jsonData[i].ContainsKey("type"))
{
type = jsonData[i]["type"].ToString();// 参数类型
}
if (output == "1")
{
object inputValue = null; ;
inputValue = GetInputValue(type, output);
thisParms[i] = new SqlParameter(name, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
public static string ExePROCEDURE_Type15_Bakup(JsonData json,string filename,string suffix,byte[]bytes)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
DataSet ds = null;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
if (jsonDataParam == null)
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else
{
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else//执行有参数的存储过程
{
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
thisParms = new SqlParameter[jsonData.Count];//定义参数个数
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
//string value = jsonData[i]["value"].ToString();// 参数值
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output"))
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
if (jsonData[i].ContainsKey("type"))
{
type = jsonData[i]["type"].ToString();// 参数类型
}
if (output == "1")
{
object inputValue = null; ;
inputValue = GetInputValue(type, output);
thisParms[i] = new SqlParameter(name, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
thisParms[thisParms.Length - 3].Value = filename;
thisParms[thisParms.Length - 2].Value = suffix;
thisParms[thisParms.Length - 1].Value = bytes;
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
public static string ExePROCEDURE_Type16_Bakup(JsonData json,out byte[]bytes, out string fileName, out string suffix)
{
bytes = null;
fileName = "";
suffix = "";
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
DataSet ds = null;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
if (jsonDataParam == null)
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else
{
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else//执行有参数的存储过程
{
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
thisParms = new SqlParameter[jsonData.Count];//定义参数个数
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
//string value = jsonData[i]["value"].ToString();// 参数值
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output"))
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
if (jsonData[i].ContainsKey("type"))
{
type = jsonData[i]["type"].ToString();// 参数类型
}
if (output == "1")
{
object inputValue = null; ;
inputValue = GetInputValue(type, output);
thisParms[i] = new SqlParameter(name, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// 分页查询
/// "UserID": $("#UserID").val(),
/// "Type": $("#TYPE").val(),
/// "Name": $("#NAME").val(),
/// "Param": $("#PARAM1value").val(),
/// "Pagination": $("#Pagination").val(),
/// HasReturn: $("#HASRETURN").get(0).checked
///
/// 要分页显示的表名
/// 用于定位记录的主键(惟一键)字段,只能是单个字段
/// 查询条件
/// 以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
/// 以逗号分隔的排序字段列表,可以指定在字段后面指定DESC / ASC--用于指定排序顺序
/// 要显示的页码
/// 每页的大小(记录数)
/// 返回的结果表
/// 总页数
/// 数据总数
public static bool ExePROCEDURE_Type1003_Bakup(string tbname,string fieldkey,string where,string fieldshow,string fieldorder,int pagecurrent,int pagesize ,
out DataTable dt,out int pagecount,out int itemcount)
{
dt = new DataTable();
DataSet ds;
itemcount = 0;
string ErrorMessage;
return DataAccess.ExecPageQuery(tbname, connectionStringBakup, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out pagecount, out itemcount, out ds, out ErrorMessage);
}
///
///
///
///
///
///
///
///
public static string ExePROCEDURE_Type1003_Bakup(JsonData json, out DataTable dt, out int pagecount,out int itemcount)
{
string tbname="";
string fieldkey="";
string where="";
string fieldshow="";
string fieldorder="";
int pagecurrent=1;
int pagesize=15;
pagecount=0;
dt = new DataTable();
DataSet ds;
itemcount = 0;
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
dt = new DataTable();
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
if(jsonData.Count>0)
{
if (jsonData[0]["tbname"] != null)
{
tbname = jsonData[0]["tbname"].ToString();
}
if (jsonData[0]["fieldkey"] != null)
{
fieldkey = jsonData[0]["fieldkey"].ToString();
}
if (jsonData[0]["where"] != null)
{
where = jsonData[0]["where"].ToString();
}
if (jsonData[0]["fieldshow"] != null)
{
fieldshow = jsonData[0]["fieldshow"].ToString();
}
if (jsonData[0]["fieldorder"] != null)
{
fieldorder = jsonData[0]["fieldorder"].ToString();
}
if (jsonData[0]["pagecurrent"] != null)
{
pagecurrent = Convert.ToInt32(jsonData[0]["pagecurrent"]);
}
if (jsonData[0]["pagesize"] != null)
{
pagesize = Convert.ToInt32(jsonData[0]["pagesize"]);
}
}
isOK = ExePROCEDURE_Type1003_Bakup(tbname, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out dt, out pagecount, out itemcount);
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
public static string ExePROCEDURE_Type11_Bakup(JsonData json,out DataTable dt)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
DataSet ds = null;
dt = new DataTable();
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
}
else//执行有参数的存储过程
{
thisParms = new SqlParameter[jsonData.Count];//定义参数个数
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
//string value = jsonData[i]["value"].ToString();// 参数值
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if (jsonData[i].ContainsKey("output"))
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
if (jsonData[i].ContainsKey("type"))
{
type = jsonData[i]["type"].ToString();// 参数类型
}
if (output == "1")
{
object inputValue = null; ;
inputValue = GetInputValue(type, output);
thisParms[i] = new SqlParameter(name, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out ds, out result);
if (ds != null && ds.Tables.Count > 0)
{
dt = ds.Tables[0];
}
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// 12
/// 增删改 DbCallType2 的更新版 采用新协议 {"type":"12","name":"存储过程","param":"[{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]"}
///
///
///
public static string ExePROCEDURE_Type12_Bakup(JsonData json)
{
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;
bool isOutput = false;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
string type1;
string name1;
string param1;
string userID1;
string pagination1;
bool hasReturn1;
string modularID1;
GetString_JsonData(json, out type1, out name1, out param1, out userID1, out pagination1, out hasReturn1, out modularID1);
jsonDataName = name1;//存储过程名称
jsonDataParam = param1; //存储过程参数 json格式 [{\"name\":\"name1\",\"value\":\"value1\"},{\"name\":\"name2\",\"value\":\"value1\"}]
jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转为JSON格式
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out result);
}
else//执行有参数的存储过程
{
thisParms = new SqlParameter[jsonData.Count];
for (int i = 0; i < jsonData.Count; i++)
{
string name = jsonData[i]["name"].ToString();// 参数名
string value = null;
try
{
//判断是否为数组,若为数组转为字符串格式
if (jsonData[i]["value"].IsArray == true)
{
//数组转字符串
value = jsonData[i]["value"].ToJson().ToString().Replace("[", "").Replace("]", "").Replace("\"", "");// 数组参数值转字符串
// unicode解码
value = DeUnicode(value);
}
else//不是数组格式直接转字符串
{
value = jsonData[i]["value"].ToString();// 参数值
}
}
catch (Exception E)//value为null时。Tostring()会报错,需要手动赋值
{
value = null;
}
string output = null;// 参数是否为输出类型
string type = null;// 参数类型
thisParms[i] = new SqlParameter(name, value);
if(jsonData[i].ContainsKey("output"))
{
if(jsonData[i]["output"] != null)
{
output = jsonData[i]["output"].ToString();// 参数是否为输出类型
}
}
if(jsonData[i].ContainsKey("type"))
{
if(jsonData[i]["type"] != null)
{
type = jsonData[i]["type"].ToString();// 参数类型
}
}
if (output == "1")
{
object inputValue = null; ;
inputValue = GetInputValue(type, output);
thisParms[i] = new SqlParameter(name, inputValue);
thisParms[i].Direction = ParameterDirection.Output;
isOutput = true;// 存在输出参数
}
}
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionStringBakup, ref thisParms, out result);
}
}
if (isOK)
{
result = "[{ \"result\":\"" + "1" + "\"}]";
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
}
}