-2

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

 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();
    }

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

4

2 回答 2

0

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

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();
}
于 2012-05-26T22:10:49.283 回答
-1

您需要使用 FOR 循环而不是 foreach .. 传递正确的值,您需要 for 循环并将 pair.key 更改为 pair[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();

    }
}

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

于 2012-05-27T02:08:54.363 回答