如何在数据库中插入字典类型的变量

时间:2012-05-26 21:02:13

标签: c# sql dictionary

我想插入一些var dict = new Dictionary<string, int>();类型的值。我有4个循环,我想在 var dict 的变量旁边插入另一个值 这是我的代码

 var dict = new Dictionary<string, int>();
                    foreach (string word in wordsbeforesoundex)
                    {

                        if (word == null)
                        {
                            continue;
                        }
                        if (word.Trim() != "")
                        {
                            if (dict.ContainsKey(word))
                            {
                                dict[word]++;
                            }
                            else
                            {
                                dict[word] = 1;
                            }
                        }

                    }
    for (int l = 0; l < words.Length; l++)
    {
        con.Open();

        SqlCommand cmd = new SqlCommand("INSERT INTO TableFFF (Frequency) VALUES (@dict_idx)", con);


        cmd.Parameters.Add(new SqlParameter("@dict_idx", dict[wordsbeforesoundex[l]]));


        cmd.ExecuteNonQuery();
        con.Close();
    }

我的问题是如何获取字典中的数据并将其插入数据库

2 个答案:

答案 0 :(得分:0)

您需要有两列,一列用于词典键(word),另一列用于词典值(频率)

foreach(var pair in dict)
{
    con.Open();

    SqlCommand cmd = new SqlCommand("INSERT INTO TableFFF (Word, Frequency) VALUES (@word, @freq)", con);

    cmd.Parameters.Add(new SqlParameter("@word", pair.Key);
    cmd.Parameters.Add(new SqlParameter("@freq", pair.Value);

    cmd.ExecuteNonQuery();
    con.Close();
}

答案 1 :(得分:-1)

你必须使用for循环而不是foreach ..传递你需要循环的正确值,并将pair.key改为配对[for loop index] .key

using (SqlCommand cmd = new SqlCommand("INSERT INTO TableFFF (Word, Frequency) VALUES (@word, @freq)", con))
{
    con.Open();
    for (int i = 0; i < dict.Count; i++)
   {   
      cmd.Parameters.Add(new SqlParameter("@word", pair[i].Key);
      cmd.Parameters.Add(new SqlParameter("@freq", pair[i].Value);

      cmd.ExecuteNonQuery();

    }
}

使用,连接将在自动完成后处理