//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 struct ParamData
{
///
/// 变量名称
///
public string name;
///
/// 变量值
///
public object value;
/////
///// 变量类型 int string bool datetime
/////
//public string datatype;
/////
///// 是否输出
/////
//public string output;
///
/// 是否选择
///
public bool isCheck;
///
/// 逻辑操作 > = !=
///
public string logicaloperator;
/// 是否输出
///
public bool isOutPut;
}
public partial class DataLink
{
private static bool initSystemIsOk;
public static bool InitSystemIsOk
{
get
{
return initSystemIsOk;
}
}
///
/// 01,02,03,04,05,06,07,08,09,10
///
///public string connType = "";
private static string connectionString ;
private static string connectionStringBakup ;
private static string connectionString01;
private static string connectionStringBakup01;
private static string connectionString02;
private static string connectionStringBakup02;
private static string connectionString03;
private static string connectionStringBakup03;
private static string connectionString04;
private static string connectionStringBakup04;
private static string connectionString05;
private static string connectionStringBakup05;
private static string connectionString06;
private static string connectionStringBakup06;
private static string connectionString07;
private static string connectionStringBakup07;
private static string connectionString08;
private static string connectionStringBakup08;
private static string connectionString09;
private static string connectionStringBakup09;
private static string connectionString10;
private static string connectionStringBakup10;
public static string isBakup = "0";
public static string isBakup01 = "0";
public static string isBakup02 = "0";
public static string isBakup03 = "0";
public static string isBakup04 = "0";
public static string isBakup05 = "0";
public static string isBakup06 = "0";
public static string isBakup07 = "0";
public static string isBakup08 = "0";
public static string isBakup09 = "0";
public static string isBakup10 = "0";
public static bool InitSystem(out string SerialNumberStr)
{
if(KeyWordTest.KeyWordNew(out SerialNumberStr))
{
connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
connectionStringBakup = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup"];
connectionString01 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString01"];
connectionStringBakup01 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup01"];
connectionString02 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString02"];
connectionStringBakup02 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup02"];
connectionString03 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString03"];
connectionStringBakup03 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup03"];
connectionString04 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString04"];
connectionStringBakup04 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup04"];
connectionString05 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString05"];
connectionStringBakup05 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup05"];
connectionString06 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString06"];
connectionStringBakup06 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup06"];
connectionString07 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString07"];
connectionStringBakup07 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup07"];
connectionString08 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString08"];
connectionStringBakup08 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup08"];
connectionString09 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString09"];
connectionStringBakup09 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup09"];
connectionString10 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString10"];
connectionStringBakup10 = System.Configuration.ConfigurationManager.AppSettings["ConnectionStringBakup10"];
if (connectionString == connectionStringBakup)
{
initSystemIsOk = false;
return false;
}
isBakup = System.Configuration.ConfigurationManager.AppSettings["IsBakup"];
isBakup01 = System.Configuration.ConfigurationManager.AppSettings["IsBakup01"];
isBakup02 = System.Configuration.ConfigurationManager.AppSettings["IsBakup02"];
isBakup03 = System.Configuration.ConfigurationManager.AppSettings["IsBakup03"];
isBakup04 = System.Configuration.ConfigurationManager.AppSettings["IsBakup04"];
isBakup05 = System.Configuration.ConfigurationManager.AppSettings["IsBakup05"];
isBakup06 = System.Configuration.ConfigurationManager.AppSettings["IsBakup06"];
isBakup07 = System.Configuration.ConfigurationManager.AppSettings["IsBakup07"];
isBakup08 = System.Configuration.ConfigurationManager.AppSettings["IsBakup08"];
isBakup09 = System.Configuration.ConfigurationManager.AppSettings["IsBakup09"];
isBakup10 = System.Configuration.ConfigurationManager.AppSettings["IsBakup10"];
initSystemIsOk = true;
return true;
}
else
{
try
{
Reg dlg = new Reg();
dlg.ShowDialog();
if (KeyWordTest.KeyWordNew(out SerialNumberStr))
{
initSystemIsOk = true;
}
else
{
initSystemIsOk = false;
}
return false;
}
catch(Exception e)
{
return false;
}
}
}
///
/// 1、执行存储过程,存储过程返回查询结果表,表以JSON字符串返回给页面。
/// 输入参数:参数名称1&参数&参数类型|参数名称1&参数&参数类型
///
///
///
public static string ExePROCEDURE_Type1(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, connectionString, 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, connectionString, ref thisParms, out ds, out result);
}
if (isOK)
{
//if (names.Length >= 2)
//{
// string type = names[1].Split('=')[1];
// DataTable dt = ds.Tables[0];
// result = DbComType.DbCallType(dt, type, json.Name);
//}
//else
{
if (ds != null && ds.Tables.Count > 0)
{
if (json.Pagination == "" || json.Pagination == null) // 判断是否需要分页
{
// 以下操作为处理模型数据 *********************************************
//for (int i = 0; i < ds.Tables[0].Rows.Count; i++) // 通过循环拿到单个DIV的模型数据
//{
// string modelData = JsonHelper.ObjectToJson(ds.Tables[0].Rows[i]["模型数据"].ToString()); // 由于转JSON字符有限,单个转换
// result += modelData.Substring(1, modelData.Length - 2); // 去除首和尾的字符串引号并拼接
//}
//result = "[{\"模型数据\":\"" + result + "\"}]"; // 拼接成最终字符串
//**********************************************************************
result = JsonHelper.DataTableToJson(ds.Tables[0]);
}
else
{
int pageSize = int.Parse(json.Pagination.Split('&')[0]);
int pageList = int.Parse(json.Pagination.Split('&')[1]);
DataTable dt = ds.Tables[0];
dt1 = dt.Copy(); //复制dt
dt1.Rows.Clear();//清空内容,只保留dt结构。
for (int i = (pageSize - 1) * pageList; i < pageSize * pageList; i++)//循环需要显示的行
{
if (i < dt.Rows.Count)
{
dt1.ImportRow(dt.Rows[i]);//这是加入的是第i行
}
}
result = JsonHelper.CreateJsonParameters(dt1, true, dt.Rows.Count);
}
}
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
///
/// 1、执行存储过程,存储过程返回查询结果表,表以JSON字符串返回给页面。
/// 输入参数:参数名称1&参数&参数类型|参数名称1&参数&参数类型
///
///
///
public static string ExePROCEDURE_Type1(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, connectionString, 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, connectionString, ref thisParms, out ds, out result);
if (ds != null && ds.Tables.Count > 0)
{
dt = ds.Tables[0];
}
}
if (isOK)
{
//if (names.Length >= 2)
//{
// string type = names[1].Split('=')[1];
// DataTable dt = ds.Tables[0];
// result = DbComType.DbCallType(dt, type, json.Name);
//}
//else
{
if (ds != null && ds.Tables.Count > 0)
{
if (json.Pagination == "" || json.Pagination == null) // 判断是否需要分页
{
// 以下操作为处理模型数据 *********************************************
//for (int i = 0; i < ds.Tables[0].Rows.Count; i++) // 通过循环拿到单个DIV的模型数据
//{
// string modelData = JsonHelper.ObjectToJson(ds.Tables[0].Rows[i]["模型数据"].ToString()); // 由于转JSON字符有限,单个转换
// result += modelData.Substring(1, modelData.Length - 2); // 去除首和尾的字符串引号并拼接
//}
//result = "[{\"模型数据\":\"" + result + "\"}]"; // 拼接成最终字符串
//**********************************************************************
result = JsonHelper.DataTableToJson(ds.Tables[0]);
}
else
{
int pageSize = int.Parse(json.Pagination.Split('&')[0]);
int pageList = int.Parse(json.Pagination.Split('&')[1]);
dt = ds.Tables[0];
dt1 = dt.Copy(); //复制dt
dt1.Rows.Clear();//清空内容,只保留dt结构。
for (int i = (pageSize - 1) * pageList; i < pageSize * pageList; i++)//循环需要显示的行
{
if (i < dt.Rows.Count)
{
dt1.ImportRow(dt.Rows[i]);//这是加入的是第i行
}
}
result = JsonHelper.CreateJsonParameters(dt1, true, dt.Rows.Count);
}
}
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
///
/// type = 2 Insert
///
///
///
public static string ExePROCEDURE_Type2(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, connectionString, 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, connectionString, ref thisParms, out result);
}
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch
{
result = "[{ \"result\":\"0\"}]";
}
return result;
}
///
/// Type = 3
///
///
///
public static string ExePROCEDURE_Type3(jsonobj json)
{
string result = "[{ \"result\":\"0\"}]";
bool isOK;
if (json.Name != null)
{
DataTable dt = null;
try
{
isOK = SQLCommon.ExecuteDataTable(json.Name, connectionString, 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(jsonobj json,out DataTable dt)
{
string result = "[{ \"result\":\"0\"}]";
bool isOK;
dt = new DataTable();
if (json.Name != null)
{
try
{
isOK = SQLCommon.ExecuteDataTable(json.Name, connectionString, 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 = 4
///
///
///
public static string ExePROCEDURE_Type4(jsonobj json)
{
string result = "[{ \"result\":\"0\"}]"; ;
bool isOK;
if (json.Name != null)
{
try
{
isOK = SQLCommon.ExecuteNonQuery(json.Name, connectionString, 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(jsonobj json)
{
string result = "";
DataSet ds = null;
try
{
if (json.Param == "" || json.Param == null)//执行没有参数的存储过程
{
SQLCommon.ExecuteStoredProcedure(json.Name, connectionString, 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, connectionString, ref thisParms, out ds, out result);
}
if (ds != null && ds.Tables.Count > 0)
{
result = JsonHelper.DataTableToJson(ds.Tables[0]);
}
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
///
/// 7 vue格式Excel 导入到创建并表中
///
///
///
public static string ExePROCEDURE_Type7(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(connectionString))
{
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(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, connectionString,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, connectionString, out outputID,out err);
}
else
{
isOK = SQLCommon.ExecuteInsertMesWork(jsonDataName.ToString(), ref param, connectionString,out err);
}
}
}
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
string resultOutput = "";
if (isOutput)//存储过程有输出参数
{
resultOutput = outputID.ToString();// SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
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(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, connectionString, 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, connectionString, out dt,out err);
}
}
if (isOK)
{
if (dt != null && dt.Rows.Count > 0)
{
//DataTable dt = ds.Tables[0];
//result = JsonHelper.CreateJsonParameters(dt, true, dt.Rows.Count);
//result = "[{ \"result\":\"" + "0" + "\"}]";
if (json.ContainsKey("pageSize") && json.ContainsKey("pageList")) // 判断是否需要分页
{
int pageSize = int.Parse(json["pageSize"].ToString());
int pageList = int.Parse(json["pageList"].ToString());
//DataTable dt = ds.Tables[0];
DataTable dt1 = dt.Copy(); //复制dt
dt1.Rows.Clear();//清空内容,只保留dt结构。
for (int i = (pageList - 1) * pageSize; i < pageList * pageSize; i++)//循环需要显示的行
{
if (i < dt.Rows.Count)
{
dt1.ImportRow(dt.Rows[i]);//这是加入的是第i行
}
}
result = JsonHelper.CreateJsonParameters(dt1, true, dt.Rows.Count);
}
else
{
result = JsonHelper.DataTableToJson(dt);
}
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
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(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, connectionString, 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, connectionString, out dt,out err);
}
}
if (isOK)
{
if (dt != null && dt.Rows.Count > 0)
{
//DataTable dt = ds.Tables[0];
//result = JsonHelper.CreateJsonParameters(dt, true, dt.Rows.Count);
//result = "[{ \"result\":\"" + "0" + "\"}]";
if (json.ContainsKey("pageSize") && json.ContainsKey("pageList")) // 判断是否需要分页
{
int pageSize = int.Parse(json["pageSize"].ToString());
int pageList = int.Parse(json["pageList"].ToString());
//DataTable dt = ds.Tables[0];
DataTable dt1 = dt.Copy(); //复制dt
dt1.Rows.Clear();//清空内容,只保留dt结构。
for (int i = (pageList - 1) * pageSize; i < pageList * pageSize; i++)//循环需要显示的行
{
if (i < dt.Rows.Count)
{
dt1.ImportRow(dt.Rows[i]);//这是加入的是第i行
}
}
result = JsonHelper.CreateJsonParameters(dt1, true, dt.Rows.Count);
}
else
{
result = JsonHelper.DataTableToJson(dt);
}
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
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(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(), connectionString, 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(), connectionString, ref thisParms, out ds, out result);
}
}
if (isOK)
{
if (ds != null && ds.Tables.Count > 0)
{
//DataTable dt = ds.Tables[0];
//result = JsonHelper.CreateJsonParameters(dt, true, dt.Rows.Count);
//result = "[{ \"result\":\"" + "0" + "\"}]";
if (json.ContainsKey("pageSize") && json.ContainsKey("pageList")) // 判断是否需要分页
{
int pageSize = int.Parse(json["pageSize"].ToString());
int pageList = int.Parse(json["pageList"].ToString());
DataTable dt = ds.Tables[0];
DataTable dt1 = dt.Copy(); //复制dt
dt1.Rows.Clear();//清空内容,只保留dt结构。
for (int i = (pageList - 1) * pageSize; i < pageList * pageSize; i++)//循环需要显示的行
{
if (i < dt.Rows.Count)
{
dt1.ImportRow(dt.Rows[i]);//这是加入的是第i行
}
}
result = JsonHelper.CreateJsonParameters(dt1, true, dt.Rows.Count);
}
else
{
result = JsonHelper.DataTableToJson(ds.Tables[0]);
}
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
///
///
///
///
///
///
///
public static bool ExePROCEDURE_Type2004(JsonData json, out byte[]bytes, out string fileName, out string fileExtension)
{
DataTable dt;
bytes = null;
fileName = "";
fileExtension = "";
ExePROCEDURE_Type11_2004(json, out dt);
if(dt!=null)
{
if(dt.Rows.Count>0 )
{
bytes = (byte[])dt.Rows[0][0];
fileName = dt.Rows[0][1].ToString();
fileExtension = dt.Rows[0][2].ToString();
return true;
}
}
return false;
}
public static void ExePROCEDURE_Type11_2004(JsonData json,out DataTable dt)
{
dt = null;
SqlParameter[] thisParms = null;
string result = "";
bool isOK = false;// 存储过程执行是否成功
bool isOutput = false;
DataSet ds = null;
JsonData jsonData;
JsonData jsonDataName;//存储过程名称
JsonData jsonDataParam;//存储过程参数
try
{
{
//string connectionString_connType = GetConnectionStringByConnType(connType);
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(), connectionString, 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(), connectionString, ref thisParms, out ds, out result);
}
dt = ds.Tables[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(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(), connectionString, ref thisParms, out ds, out result);
}
else
{
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, 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(), connectionString, ref thisParms, out ds, out result);
}
}
}
if (isOK)
{
if (ds != null && ds.Tables.Count > 0)
{
result = DatasetToJson(ds);
//result = DataTableToJson(ds.Tables[0]);// JsonHelper.DataTableToJson(ds.Tables[0]);
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
public static string ExePROCEDURE_Type15(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(), connectionString, ref thisParms, out ds, out result);
}
else
{
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, 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(), connectionString, ref thisParms, out ds, out result);
}
}
}
if (isOK)
{
if (ds != null && ds.Tables.Count > 0)
{
result = DatasetToJson(ds);
//result = DataTableToJson(ds.Tables[0]);// JsonHelper.DataTableToJson(ds.Tables[0]);
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
public static string ExePROCEDURE_Type16(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(), connectionString, ref thisParms, out ds, out result);
}
else
{
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
isOK = SQLCommon.ExecuteStoredProcedure(jsonDataName.ToString(), connectionString, 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(), connectionString, ref thisParms, out ds, out result);
}
}
}
if (isOK)
{
if (ds != null && ds.Tables.Count > 0)
{
fileName = ds.Tables[0].Rows[0].ItemArray[0].ToString();
suffix = ds.Tables[0].Rows[0].ItemArray[1].ToString();
bytes = (byte[])ds.Tables[0].Rows[0].ItemArray[2];
//去掉后缀
if(fileName.Contains(suffix))
{
fileName = fileName.Split(new Char[] { '.' })[0];
}
result = "[{ \"result\":\"" + "1" + "\"}]";
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
public static void GetString_JsonData_Type15(JsonData json, out string type, out string name, out string param, out string userID, out string pagination, out bool hasReturn, out string modularID)
{
type = null;
name = null;
param = "";
userID = null;
pagination = null;
hasReturn = false;
modularID = "";
if (json == null) return;
if (json.Keys.Contains("Type"))
{
if (json["Type"] != null)
type = json["Type"].ToString();
}
else if (json.Keys.Contains("type"))
{
if (json["type"] != null)
type = json["type"].ToString();
}
if (json.Keys.Contains("Name"))
{
if (json["Name"] != null)
name = json["Name"].ToString();
}
else if (json.Keys.Contains("name"))
{
if (json["name"] != null)
name = json["name"].ToString();
}
if (json.Keys.Contains("Param"))
{
if (json["Param"] != null)
param = json["Param"].ToString();
}
else if (json.Keys.Contains("param"))
{
if (json["param"] != null)
param = json["param"].ToString();
}
if (json.Keys.Contains("UserID"))
{
if (json["UserID"] != null)
userID = json["UserID"].ToString();
}
else if (json.Keys.Contains("userID"))
{
if (json["userID"] != null)
userID = json["userID"].ToString();
}
if (json.Keys.Contains("Pagination"))
{
if (json["Pagination"] != null)
pagination = json["Pagination"].ToString();
}
else if (json.Keys.Contains("pagination"))
{
if (json["pagination"] != null)
pagination = json["pagination"].ToString();
}
if (json.Keys.Contains("HasReturn"))
{
try
{
if (json["HasReturn"] != null)
hasReturn = Convert.ToBoolean(json["HasReturn"].ToString());
}
catch
{
}
}
else if (json.Keys.Contains("hasReturn"))
{
try
{
if (json["hasReturn"] != null)
hasReturn = Convert.ToBoolean(json["hasReturn"].ToString());
}
catch
{
}
}
if (json.Keys.Contains("ModularID"))
{
try
{
if (json["ModularID"] != null)
modularID = json["ModularID"].ToString();
}
catch
{
}
}
else if (json.Keys.Contains("modularID"))
{
try
{
if (json["modularID"] != null)
modularID = json["modularID"].ToString();
}
catch
{
}
}
//ModularID
}
public static string DataTableToJson(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
//jsonBuilder.Append("{");
jsonBuilder.Append(JsonHelper.DataTableToJson(dt));
//jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
public static string DataTableToJsonBak(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"Name\":\"" + dt.TableName + "\",\"Rows\":");
jsonBuilder.Append(JsonHelper.DataTableToJson(dt));
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
public static string DatasetToJson(System.Data.DataSet ds)
{
StringBuilder json = new StringBuilder();
//json.Append("{");
json.Append("[");
foreach (System.Data.DataTable dt in ds.Tables)
{
json.Append(DataTableToJson(dt));
json.Append(",");
}
json.Remove(json.Length - 1, 1);
json.Append("]");
//json.Append("}");
return json.ToString();
}
public static string DatasetToJsonBak(System.Data.DataSet ds)
{
StringBuilder json = new StringBuilder();
json.Append("{\"Tables\":");
json.Append("[");
foreach (System.Data.DataTable dt in ds.Tables)
{
json.Append(DataTableToJson(dt));
json.Append(",");
}
json.Remove(json.Length - 1, 1);
json.Append("]");
json.Append("}");
return json.ToString();
}
///
/// 分页查询
/// "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(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, connectionString, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out pagecount, out itemcount, out ds, out ErrorMessage);
}
///
///
///
///
///
///
///
///
public static string ExePROCEDURE_Type1003(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(tbname, fieldkey, where, fieldshow, fieldorder, pagecurrent, pagesize, out dt, out pagecount, out itemcount);
}
if (isOK)
{
if (dt != null)
{
result = JsonHelper.DataTableToJson(dt);
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
//resultOutput = SQLCommon.GetOutputValue(thisParms);
{
resultOutput = resultOutput + "\"" + "pagecount" + "\":" + "\"" + pagecount.ToString() + "\"";
}
{
resultOutput = resultOutput + "," + "\"" + "itemcount" + "\":" + "\"" + itemcount.ToString() + "\"";
}
resultOutput = "[{" + resultOutput + "}]";
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
public static string ExePROCEDURE_Type11(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(), connectionString, 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(), connectionString, ref thisParms, out ds, out result);
if (ds != null && ds.Tables.Count > 0)
{
dt = ds.Tables[0];
}
}
}
if (isOK)
{
if (ds != null && ds.Tables.Count > 0)
{
//DataTable dt = ds.Tables[0];
//result = JsonHelper.CreateJsonParameters(dt, true, dt.Rows.Count);
//result = "[{ \"result\":\"" + "0" + "\"}]";
if (json.ContainsKey("pageSize") && json.ContainsKey("pageList")) // 判断是否需要分页
{
int pageSize = int.Parse(json["pageSize"].ToString());
int pageList = int.Parse(json["pageList"].ToString());
dt = ds.Tables[0];
DataTable dt1 = dt.Copy(); //复制dt
dt1.Rows.Clear();//清空内容,只保留dt结构。
for (int i = (pageList - 1) * pageSize; i < pageList * pageSize; i++)//循环需要显示的行
{
if (i < dt.Rows.Count)
{
dt1.ImportRow(dt.Rows[i]);//这是加入的是第i行
}
}
result = JsonHelper.CreateJsonParameters(dt1, true, dt.Rows.Count);
}
else
{
result = JsonHelper.DataTableToJson(ds.Tables[0]);
}
}
string resultOutput = "";
//[{"name1":"value1","name2":"value2"}]
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
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(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(), connectionString, 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(), connectionString, ref thisParms, out result);
}
}
if (isOK)
{
result = "[{ \"result\":\"1\"}]";
string resultOutput = "";
if (isOutput)//存储过程有输出参数
{
resultOutput = SQLCommon.GetOutputValue(thisParms);
string jsonStr;
jsonStr = "{\"result\":" + result + "," + "\"output\":" + resultOutput + "}";
result = jsonStr;
}
}
else
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
}
catch (Exception e)
{
result = "[{ \"result\":\"" + "0" + "\"}]";
}
return result;
}
///
/// Unicode解码
///
///
///
public static string DeUnicode(string str)
{
//最直接的方法Regex.Unescape(str);
Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
return reg.Replace(str, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });
}
public static void GetParamData(JsonData jsonDataParam, out ParamData[] paramData)
{
JsonData jsonData = JsonMapper.ToObject(jsonDataParam.ToString()); //转格式
if (jsonDataParam.ToString() == "" || jsonDataParam.ToString() == null)//参数为空,执行没有参数的存储过程
{
paramData = null;
}
else//执行有参数的存储过程
{
paramData = new ParamData[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;// 参数类型
paramData[i].name = name;
paramData[i].value = 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);
paramData[i].name = name;
paramData[i].value = inputValue;
}
}
if (output == "1")
{
paramData[i].isOutPut = true;
}
}
}
}
///
/// 返回输出参数类型
///
///
///
///
public static object GetInputValue(object type, object output)
{
object inputValue = null;
switch (type.ToString())
{
case "int":
inputValue = Convert.ToInt32(output);
break;
case "string":
inputValue = output;
break;
case "boolean":
case "bool":
if (output.ToString() == "1" || output.ToString() == "true")
{
inputValue = true;
}
else
{
inputValue = false;
}
break;
case "datetime":
inputValue = Convert.ToDateTime(output);
break;
default:
inputValue = output.ToString();
break;
}
return inputValue;
}
///
/// 返回输出参数类型
///
///
///
///
static object GetInputStringValue(object type, string value)
{
object inputValue = value;
try
{
if (type == null)
{
return inputValue;
}
switch (type.ToString())
{
case "int":
inputValue = Convert.ToInt32(value);
break;
case "string":
inputValue = value;
break;
case "boolean":
case "bool":
if (value.ToString() == "1" || value.ToString() == "true")
{
inputValue = true;
}
else
{
inputValue = false;
}
break;
case "datetime":
inputValue = Convert.ToDateTime(value);
break;
default:
inputValue = value.ToString();
break;
}
}
catch
{
}
return inputValue;
}
///
/// 根据结构数组变量,获得对应Json字符串
///
///
///
///
///
static string GetExeSqlCmd(string type, string name, ParamData[] paramData)
{
string jsonStr = "";
string paramDataJson;
paramDataJson = GetParamJson(paramData);
jsonStr = GetExeSqlCmd(type, name, paramDataJson);
return jsonStr;
}
///
/// 根据表结构数组变量,获得对应Json字符串
///
///
///
///
///
static string GetExeSqlCmd(string type, string name, DataTable paramDataTable)
{
string jsonStr = "";
string paramDataJson;
paramDataJson = GetParamJson(paramDataTable);
jsonStr = GetExeSqlCmd(type, name, paramDataJson);
return jsonStr;
}
///
/// 根据结构数组变量,获得对应Json字符串
///
///
///
private static string GetParamJson(ParamData[] paramData)
{
string jsonStr = "";
List listParamData = new List();
for (int i = 0; i < paramData.Length; i++)
{
listParamData.Add(paramData[i]);
}
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List));
ser.WriteObject(stream1, listParamData);
stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
jsonStr = sr.ReadToEnd();
jsonStr = jsonStr.Replace("\"", "\\\"");
return jsonStr;
}
///
/// 根据表结构数组变量,获得对应Json字符串
///
///
///
private static string GetParamJson(DataTable paramDataTable)
{
ParamData[] paramData;
string jsonStr = "";
if (paramDataTable != null & paramDataTable.Rows.Count > 0)
{
//paramData = new ParamData[paramDataTable.Rows.Count];
//for (int i = 0; i < paramDataTable.Rows.Count; i++)
//{
// paramData[i].name = paramDataTable.Rows[i]["name"].ToString();
// paramData[i].value = paramDataTable.Rows[i]["value"].ToString();
// paramData[i].type = paramDataTable.Rows[i]["type"].ToString();
// paramData[i].output = paramDataTable.Rows[i]["output"].ToString();
//}
paramData = GetParam(paramDataTable);
jsonStr = GetParamJson(paramData);
//List listParamData = new List();
//for (int i = 0; i < paramData.Length; i++)
//{
// listParamData.Add(paramData[i]);
//}
//MemoryStream stream1 = new MemoryStream();
//DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List));
//ser.WriteObject(stream1, listParamData);
//stream1.Position = 0;
//StreamReader sr = new StreamReader(stream1);
}
return jsonStr;
}
public static ParamData[] GetParam(DataTable paramDataTable)
{
ParamData[] paramData=null;
if (paramDataTable != null & paramDataTable.Rows.Count > 0)
{
paramData = new ParamData[paramDataTable.Rows.Count];
for (int i = 0; i < paramDataTable.Rows.Count; i++)
{
paramData[i].name = paramDataTable.Rows[i]["name"].ToString();
paramData[i].value = paramDataTable.Rows[i]["value"].ToString();
//paramData[i].datatype = paramDataTable.Rows[i]["type"].ToString();
if(paramDataTable.Rows[i]["output"].ToString().Length>0)
{
paramData[i].isOutPut =true;
}
else
{
paramData[i].isOutPut = false;
}
}
}
return paramData;
}
///
///
///
///
///
///
///
private static string GetExeSqlCmd(string type, string name, string paramJson)
{
//{ "type":"1002","name":"select * from test","param":"[{\"name\":\"检测点代码\",\"value\":15},{\"name\":\"原材料_check\",\"value\":1},{\"name\":\"原材料代码\",\"value\":12}]"}
//{"type":"1002","name":"select * from test","param":""}
string jsonStr = "";
string jsonStrParam;
if (paramJson.Length > 0)
{
jsonStrParam = "\"" + paramJson + "\"";
}
else
{
jsonStrParam = "\"\"";
}
jsonStr = "{\"type\":\"" + type + "\",\"name\":\"" + name + "\",\"param\":" + jsonStrParam + "}";
return jsonStr;
}
}
}