public class Class1
{
public struct SqlData
{
public String sqlStatement;
public String[] sqlParamKey;
public String[] sqlParamType;
}
private Hashtable htSqlStatementData = null;
public Hashtable SqlStatementData
{
get
{
return htSqlStatementData;
}
}
public Class1()
{
htSqlStatementData = new Hashtable();
getXmlSql();
}
private void getXmlSql()
{
try
{
XmlDocument dom = new XmlDocument();
dom.Load("SqlStatement.xml");
XmlNodeList nodeListSql = dom.GetElementsByTagName("SQL");
if (nodeListSql == null)
{
return;
}
for (int i = 0; i < nodeListSql.Count; i++)
{
XmlNode sqlNode = nodeListSql[i];
String sqlId = sqlNode.Attributes["ID"].Value;
int paramCount = 0;
int.TryParse(sqlNode.Attributes["PARAMCOUNT"].Value, out paramCount);
SqlData sqlData = new SqlData();
sqlData.sqlParamKey = new string[paramCount];
sqlData.sqlParamType = new string[paramCount];
XmlNodeList nodeListSqlDetails = sqlNode.ChildNodes;
if (nodeListSql == null)
{
continue;
}
int paramIndex = 0;
for (int j = 0; j < nodeListSqlDetails.Count; j++)
{
XmlNode sqlNodeDetail = nodeListSqlDetails[j];
if ("STATMENT".Equals(sqlNodeDetail.Name))
{
XmlNode textNode = sqlNodeDetail.FirstChild;
sqlData.sqlStatement = textNode.Value;
continue;
}
if ("PARAMENT".Equals(sqlNodeDetail.Name))
{
if (sqlData.sqlParamKey.Length <= paramIndex)
{
break;
}
sqlData.sqlParamKey[paramIndex] = sqlNodeDetail.Attributes["ID"].Value;
sqlData.sqlParamType[paramIndex] = sqlNodeDetail.Attributes["TYPE"].Value;
}
}
htSqlStatementData.Add(sqlId, sqlData);
}
}
catch
{
}
}
public MySqlCommand getMySqlCommand(MySqlConnection con, string strCommandId, Hashtable htParam)
{
MySqlCommand command = con.CreateCommand();
Object objHashData = htSqlStatementData[strCommandId];
if (objHashData == null)
{
return null;
}
SqlData sqlData = (SqlData)objHashData;
command.CommandText = sqlData.sqlStatement;
if (sqlData.sqlParamKey == null || sqlData.sqlParamKey.Length == 0)
{
return command;
}
for (int i = 0; i < sqlData.sqlParamKey.Length; i++)
{
MySqlParameter param = new MySqlParameter();
param.ParameterName = sqlData.sqlParamKey[i];
param.MySqlDbType = (MySqlDbType)Enum.Parse(typeof(MySqlDbType), sqlData.sqlParamType[i], true);
param.Value = htParam[sqlData.sqlParamKey[i]];
}
return command;
}
}