0

いくつかの値を作成し、それらをデータベースに挿入したいのですが、一部のデータが挿入され、他のデータは挿入されていないことがわかりました。理由はわかりません

これが私のコードです

SqlConnection con = new SqlConnection();
con.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=DB1;server=KHALED-PC;Connect Timeout=30";

char[] delimiterChars = { ' ', ',', '.', ':', '\t', '<', ':', '$', '=', ';', ' ', '<', '>', '!', ';', ']', '[', '"',
  '/','=','-','!','#','$','%','^','&','*','/'
};
string[] stopwords ={"a", "about", "above", "above", "across", "after", "afterwards", "again", "against", "all", "almost", "alone", "along", "already", "also","although","always","am","among", "amongst", "amoungst", "amount",  "an", "and", "another", "any","anyhow","anyone","anything","anyway", "anywhere", "are", "around", "as",  "at", "back","be","became", "because","become","becomes", "becoming", "been", "before", "beforehand", "behind", "being", "below", "beside", "besides", "between", "beyond", "bill", "both", "bottom","but", "by", "call", "can", "cannot", "cant", "co", "con", "could", "couldnt", "cry", "de", "describe", "detail", "do", "done", "down", "due", "during", "each", "eg", "eight", "either", "eleven","else", "elsewhere", "empty",
  "enough", "etc", "even", "ever", "every", "everyone", "everything", "everywhere", "except", "few",
  "fifteen", "fify", "fill", "find", "fire", "first", "five", "for", "former", "formerly", "forty", "found",
  "four", "from", "front", "full", "further", "get", "give", "go", "had", "has",
  "hasnt", "have", "he", "hence", "her", "here", "hereafter", "hereby", "herein",
  "hereupon", "hers", "herself", "him", "himself", "his", "how", "however",
  "hundred", "ie", "if", "in", "inc", "indeed", "interest", "into", "is", "it",
  "its", "itself", "keep", "last", "latter", "latterly", "least", "less", "ltd",
  "made", "many", "may", "me", "meanwhile", "might", "mill", "mine", "more",
  "moreover", "most", "mostly", "move", "much", "must", "my", "myself", "name",
  "namely", "neither", "never", "nevertheless", "next", "nine", "no", "nobody",
  "none", "noone", "nor", "not", "nothing", "now", "nowhere", "of", "off",
  "often", "on", "once", "one", "only", "onto", "or", "other", "others",
  "otherwise", "our", "ours", "ourselves", "out", "over", "own","part", "per",
  "perhaps", "please", "put", "rather", "re", "same", "see", "seem", "seemed",
  "seeming", "seems", "serious", "several", "she", "should", "show", "side",
  "since", "sincere", "six", "sixty", "so", "some", "somehow", "someone", 
  "something", "sometime", "sometimes", "somewhere", "still", "such", "system",
  "take", "ten", "than", "that", "the", "their", "them", "themselves", "then",
  "thence", "there", "thereafter", "thereby", "therefore", "therein", 
  "thereupon", "these", "they", "thickv", "thin", "third", "this", "those",
  "though", "three", "through", "throughout", "thru", "thus", "to", "together",
  "too", "top", "toward", "towards", "twelve", "twenty", "two", "un", "under",
  "until", "up", "upon", "us", "very", "via", "was", "we", "well", "were",
  "what", "whatever", "when", "whence", "whenever", "where", "whereafter",
  "whereas", "whereby", "wherein", "whereupon", "wherever", "whether",
  "which", "while", "whither", "who", "whoever", "whole", "whom", "whose", 
  "why", "will", "with", "within", "without", "would", "yet", "you", "your",
  "yours", "yourself", "yourselves", "the"
};

string[] words = txt.Split(delimiterChars);//remove punctuation character 


int index = 1;
bool check = true;
foreach (string f in words)
{
  for (int s = 0; s < stopwords.Length; s++)
  {
    if (f == stopwords[s])
    {
      check = false;
      index++;
      break;
    }
  }
  if (f.Trim().Length > 0 && check == true)
  {
    //Console.WriteLine("word : " + e + "(position):" + index);
    con.Open();
    //s.ToLower();
    SqlCommand cmd = new SqlCommand("INSERT INTO TableFF (Position) VALUES (@index)", con);

    cmd.Parameters.Add(new SqlParameter("@index",index));

    //  cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();
    con.Close();
    index++;
  }
  check = true;
}

string []wordsbeforesoundex = new string[10000000];
for (int j = 0; j < words.Length; j++)
{
  wordsbeforesoundex[j] = words[i];
}

foreach (string word in wordsbeforesoundex)
{
  string results = "";
  con.Open();

  string wordss = word;
  SqlCommand cmd1 = new SqlCommand("INSERT INTO TableFF (SoundexNumbers) VALUES (@wordss)", con);
  cmd1.Parameters.Add(new SqlParameter("@wordss", wordss));

  cmd1.ExecuteNonQuery();
  wordss = null;
  con.Close();
}

最初の foreach ループの最初の値は正常に挿入されますが、2 番目の foreach では何も挿入されませんが、パラメーターと挿入する値を確認します。

4

1 に答える 1

1

この行

string[] wordsaftersoundex="khaled go to school by bus and he is good boy"

コンパイルすらしない

単語の配列を取得したい場合は、これを試してください

string[] wordsaftersoundex="khaled go to school by bus and he is good boy".Split(' ')

いずれにせよ、上で言ったように、あなたのコードはコンパイルさえしないので、あなたが私たちに伝えなかったことがあります。

于 2012-05-25T18:16:10.860 に答える