C# - 将变量添加到字符串中的特定点

时间:2013-07-30 23:16:02

标签: c# hashtable

我正在尝试在我正在处理的C#程序上建立MySQL连接。我正在构建查询。我的基本前提是你在一个类中有一个函数,它接受一个表的名称和一个带有列名和它们各自值的哈希表(对于insert命令)。

前:

Hashtable hash = new Hashtable();
hash.Add("title", title);
hash.Add("contents", content);

db.Insert(stories, hash);

所以,我的问题是,我怎样才能迭代Insert方法收到的哈希表,每次都在特定的位置上添加键和值。

可能的查询是“插入 TABLE key1 key2 )VALUES(' value1 ' ,' value2 ')“

我的困境是试图让键和值匹配在字符串中。

1 个答案:

答案 0 :(得分:0)

您可以使用List来存储Hashtable中的列名和值,然后将它们连接到命令文本中。在迭代Hashtable时添加命令的参数。

private void Insert(string tableName, Hashtable hash)
{
    MySqlCommand command = new MySqlCommand();

    List<string> columnList = new List<string>();
    List<string> valueList = new List<string>();

    foreach (DictionaryEntry entry in hash)
    {
        columnList.Add(entry.Key.ToString());
        valueList.Add("@" + entry.Key.ToString());

        command.Parameters.AddWithValue("@" + entry.Key.ToString(), entry.Value);
    }

    command.CommandText = "INSERT INTO " + tableName + "(" + string.Join(", ", columnList.ToArray()) + ") ";
    command.CommandText += "VALUES (" + string.Join(", ", valueList.ToArray()) + ")";

    command.ExecuteScalar();

}