PHP:
private DataSet getEntity(Entity entity, String SELECT_TEXT, String[][] tableDetailsArray, String tableName) {
List<Entity> list = new List<Entity>();
try {
MySqlCommand cmd = new MySqlCommand();
connection.Open();
cmd.Connection = connection;
SELECT_TEXT = "SELECT " + (entity.RowsCount > 0 ? "COUNT(*)" : "*") + " FROM `" + tableName + "` WHERE";
//SELECT_TEXT = (entity.RowsCount > 0 ? "SELECT COUNT(*) FROM (" : "") + "SELECT * FROM `" + tableName + "` WHERE";
String param = "";
//String[][] arr = tableDetails.ToArray();
bool isIdRunId = false;
/*if(tableName == "buying_invoice") {
//MessageBox.Show(getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[4][0])).ToString());
String s = (getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[4][0])).ToString() != "1/1/0001 12:00:00 AM").ToString();
}*/
for (int i = 0; i < tableDetailsArray.Length; i++) {
bool canBeDouble = false;
try {
if (tableDetailsArray[i][1].Length > 5) {
canBeDouble = true;
}
} catch (Exception) {
}
if (tableDetailsArray[i][1].Substring(0, 3) == "int" && tableDetailsArray[i][5] == "auto_increment" && Convert.ToInt32(getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0]))) > 0) {
param += " AND `" + tableDetailsArray[i][0] + "` LIKE @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
isIdRunId = true;
} else if (tableDetailsArray[i][1].Substring(0, 3) == "int" && tableDetailsArray[i][5] != "auto_increment" && Convert.ToInt32(getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0]))) > -1) {
param += " AND `" + tableDetailsArray[i][0] + "` LIKE @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
} else if ((tableDetailsArray[i][1] == "date" || tableDetailsArray[i][1].Substring(0, 4) == "date") && getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])).ToString() != "1/1/0001 12:00:00 AM") {
if (entity.dateCondition == null) {
param += " AND DATE(`" + tableDetailsArray[i][0] + "`) LIKE @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropDateValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
} else {
try {
if (entity.dateCondition[tableDetailsArray[i][0]] != null) {
param += " AND (DATE(`" + tableDetailsArray[i][0] + "`) " + entity.dateCondition[tableDetailsArray[i][0]][0] + " @" + tableDetailsArray[i][0] + "1" + " AND @" + tableDetailsArray[i][0] + "2" + ")";
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0] + "1", entity.dateCondition[tableDetailsArray[i][0]][1]);
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0] + "2", entity.dateCondition[tableDetailsArray[i][0]][2]);
} else {
param += " AND DATE(`" + tableDetailsArray[i][0] + "`) LIKE @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropDateValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
}
} catch (Exception) {
}
}
} else if (canBeDouble && tableDetailsArray[i][1].Substring(0, 6) == "double" && Convert.ToDouble(getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0]))) > 0) {
if (entity.doubleCondition == null) {
param += " AND `" + tableDetailsArray[i][0] + "` = @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
} else {
try {
if (entity.doubleCondition[tableDetailsArray[i][0]] != null) {
param += " AND `" + tableDetailsArray[i][0] + "` " + entity.doubleCondition[tableDetailsArray[i][0]] + " @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
} else {
param += " AND `" + tableDetailsArray[i][0] + "` = @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
}
} catch (Exception) {
}
}
} else if (tableDetailsArray[i][5] != "auto_increment" && getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])) != null && getPropType(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])) != "System.Double" && getPropType(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])) != "System.Int32" && (getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])).ToString() != "1/1/0001 12:00:00 AM")) {
param += " AND `" + tableDetailsArray[i][0] + "` LIKE @" + tableDetailsArray[i][0];
cmd.Parameters.AddWithValue("@" + tableDetailsArray[i][0], getPropValue(entity, getPropertyNameByColumnName(tableDetailsArray[i][0])));
}
}
if (entity.ManualQueries != null) {
param += " " + entity.ManualQueries;
}
if (!isIdRunId) {
param = " AND `id` != '0'" + param;
}
param = param.Substring(4);
if (entity.OrderBy != null) {
param += " ORDER BY " + entity.OrderBy;
/*param += " ORDER BY @orderBy @orderType";
cmd.Parameters.AddWithValue("@orderBy", entity.OrderBy);
cmd.Parameters.AddWithValue("@orderType", entity.OrderType);*/
}
if (entity.RowsCount < 1 && entity.LimitStart > -1) {
param += " LIMIT @limitStart , @limitEnd";
cmd.Parameters.AddWithValue("@limitStart", entity.LimitStart);
cmd.Parameters.AddWithValue("@limitEnd", entity.LimitEnd);
}
/*if(entity.OrderBy != null) {
param += " ORDER BY @orderBy @orderType";
cmd.Parameters.AddWithValue("@orderBy", entity.OrderBy);
cmd.Parameters.AddWithValue("@orderType", entity.OrderType);
}
if(entity.LimitStart > -1) {
param += " LIMIT @limitStart , @limitEnd";
cmd.Parameters.AddWithValue("@limitStart", entity.LimitStart);
cmd.Parameters.AddWithValue("@limitEnd", entity.LimitEnd);
}*/
SELECT_TEXT += param + ";";
//SELECT_TEXT += param + (entity.RowsCount > 0 ? ") AS cou" : "") + ";";
cmd.CommandText = SELECT_TEXT;
cmd.Prepare();
DataSet dataSet = new DataSet();
new MySqlDataAdapter(cmd).Fill(dataSet);
connection.Close();
return dataSet;
} catch (Exception) {
connection.Close();
return null;
}
}
mcn me code eke for loop eka iwara nowenna hethuwa poddak kiyapanko
