我在这个方法中有字典类型的数据。
public Dictionary<string, string> TracingFailed(string AgentIp, string AgentId, string SessionId)
{
Dictionary<string, string> LogData = new Dictionary<string, string>();
LogData.Add("Agent_Id", AgentId);
LogData.Add("login_time", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
LogData.Add("login_response", "Login Successfully");
LogData.Add("SessionId", SessionId);
LogData.Add("IP_Address", AgentIp);
LogData.Add("NLogin_time", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
return LogData;
}我有一个列值的表,以键名表示。建议我如何创建一个mysql过程,以便将这些数据发布到过程中并插入到表中。建议我。请
这里我称之为这种方法。
Dictionary<string, string> LogData = objDal.TracingFailed(AgentIp.ToString(), modelData.AgentId.ToString(), SessionId);
objDal.InsertLog(LogData);方法定义插入lOG。
public void InsertLog(Dictionary<string, string> LogData)
{
string Procedure = "SP_LoginLog";
ExecuteNonQuery(Procedure, CommandType.StoredProcedure,new MySqlParameter[] {new MySqlParameter("@columnName",LogData.Keys),new MySqlParameter("@ColumnValue",LogData.Values)});
}为此,我建立了一个程序。
SP_LoginLog
Delimiter //
create procedure SP_LoginLog(in ColumnName varchar(300),in ColumnValue varchar(300))
begin
set @sql=concat("insert into login_log("'ColumnName'")values("'ColumnValue'")");
prepare stmt from @sql;
execute stmt;
end //
Delimiter;发布于 2017-01-15 11:25:18
还有一个way.You可以将这些数据存储到xml文件中,如
XElement el= new XElement(LoadData.Key,LoadData.value);现在您可以将它作为文本参数发送到procedure.There,U可以在临时表中提取xml数据,然后插入它。
发布于 2017-01-13 04:46:31
在Server中,有一个叫做表值参数的东西,但是MySql没有这样的参数。因此,您可以尝试创建一个临时表,然后使用如这里所示的加载数据将数据推入临时表。然后将临时表的名称传递到存储过程中。
https://stackoverflow.com/questions/41627416
复制相似问题