抱歉,如果这个论点已经被处理,但我没有找到任何东西。
我正在编写一个有许多插入/更新查询的程序,我的问题是我不喜欢用string.format方法编写这么多查询,比如:
query = "INSERT INTO righe_comanda (id_originale, quantita, nome, prezzo, id_comanda,";
query += "variazionipositive,variazioninegative,opzioneselezionata,evaso, data_evasione, user_evasione) VALUES";
query += "({0},{1},'{2}','{3}',{4},'{5}','{6}','{7}',{8},'{9}','{10}');";
query = String.Format(query, id_originale, quantita, nome, prezzo, ID_Comanda, VariazioniPositive, VariazioniNegative, OpzioneSelezionata, Evaso, DataEvasione, UserEvasione);
很容易出现参数个数错误,例如“”等。所以我写了一个函数来自动创建查询。请参见:
public static string QueryFormat(string nometabella, string modalita, Dictionary<string, string> parametri, string where_column = null, string where_value = null)
{
string query = "";
if (modalita == "INSERT")
{
query += "INSERT INTO " + nometabella + " (";
foreach (var item in parametri)
{
query += item.Key + ", ";
}
query = query.Substring(0, query.Length - 2);
query += ") VALUES (";
foreach (var item in parametri)
{
query += GestisciValore(item.Value) + ", ";
}
query = query.Substring(0, query.Length - 2);
query += ")";
}
else if (modalita == "UPDATE")
{
query += "UPDATE " + nometabella + " SET ";
foreach (var item in parametri)
{
query += item.Key + " = " + GestisciValore(item.Value) + ", ";
}
query = query.Substring(0, query.Length - 2);
query += " WHERE " + where_column + " = " + GestisciValore(where_value);
}
return query;
}
private static string GestisciValore(string valore)
{
int n;
if (int.TryParse(valore, out n))
return valore;
else
return "'" + valore + "'";
}
你觉得这个怎么样?有别的选择吗?
当做
暂无答案!
目前还没有任何答案,快来回答吧!