Files
CPXV2/SystemX.Net.CP.Platform/SystemX.Net.Platform/SystemX.Common.Protocol/CommonCustomMakeProtocol.cs
2024-06-26 10:30:00 +09:00

92 lines
3.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SystemX.Net;
using SystemX.Net.BaseProtocol;
namespace SystemX.Common.Protocol
{
using ParamElement = Tuple<SqlDbType, int, byte, byte>;
public static class CommonParamSet
{
public static Dictionary<string, ParamElement> fParam= new Dictionary<string, ParamElement>();
public static void TestResultField()
{
fParam.Clear();
fParam = new Dictionary<string, ParamElement>();
fParam.Add("No", new ParamElement(SqlDbType.BigInt, 0, 0, 0));
fParam.Add("TestDT", new ParamElement(SqlDbType.DateTime2, 7, 0, 0));
fParam.Add("LogData", new ParamElement(SqlDbType.NVarChar, -1, 0, 0));
}
public static SqlParameter GetMakeSqlParameterInfo(Dictionary<string, ParamElement> refField, string strSetName, object objValue)
{
if (refField.ContainsKey(strSetName))
{
SqlParameter param = null;
if (refField[strSetName].Item2 != 0)
param = new SqlParameter("@" + strSetName, refField[strSetName].Item1, refField[strSetName].Item2);
else
param = new SqlParameter("@" + strSetName, refField[strSetName].Item1);
if (refField[strSetName].Item1 == SqlDbType.Decimal)
{
param.Precision = refField[strSetName].Item3;
param.Scale = refField[strSetName].Item4;
}
param.Value = objValue;
return param;
}
else
return null;
}
}
public class CommonCustomProtocol : BASE_PROTOCOL
{
public CommonCustomProtocol() : base()
{
}
public CommonCustomProtocol(ushort usGetCommnad, ushort usGetSubCommand) : base(usGetCommnad, usGetSubCommand)
{
}
public CommonCustomProtocol(PROTOCOL_CODE SET_CODE) : base(SET_CODE)
{
}
public SqlCommand LogDataResultInsert(string strTableName, DataRow itemData)
{
string columns = string.Empty;
columns = "No,TestDT,DataLog";
string values = string.Join(",", columns.Split(',').Select(c => string.Format("@{0}", c)));
string sqlCommand = string.Format("INSERT INTO [" + strTableName + "] ({0}) VALUES ({1})", columns, values);
CommonParamSet.TestResultField();
SqlCommand cmd = new SqlCommand(sqlCommand);
SqlParameter[] setParams = new SqlParameter[columns.Split(',').Count()];
setParams[0] = CommonParamSet.GetMakeSqlParameterInfo(CommonParamSet.fParam, "No", itemData["No"]);
setParams[1] = CommonParamSet.GetMakeSqlParameterInfo(CommonParamSet.fParam, "TestDT", itemData["TestDT"]);
setParams[2] = CommonParamSet.GetMakeSqlParameterInfo(CommonParamSet.fParam, "LogData", itemData["LogData"]);
cmd.Parameters.AddRange(setParams);
return cmd;
}
}
}