2016-01-20 4 views
0

Здравствуйте, я пытаюсь вставить гипертекст в таблицу базы данных. Сначала я разделил все слова на маленькие буквы и список на listbox1, который работает правильно.Вставка гипертекста в базу данных

И вот мое табличное слово;

id(int),word(nvarchar),sid(int),frequency(int),weight(float),f(boolean) by order 

protected void Button1_Click(object sender, EventArgs e) 
     { 
      int id=0; 
      ListBox1.Items.Clear(); 
      string strNew = Request.Form["TextBox1"]; 
      // File.WriteAllText(@"\Users\'uykusuz\Documents\text.txt", strNew); 
      int n = strNew.Split(' ').Length; 

      strNew=strNew.ToLower(); 

      var results = strNew.Split(' ').Where(x => x.Length > 1) 
              .GroupBy(x => x) 
              .Select(x => new { Count = x.Count(), Word = x.Key }) 
              .OrderByDescending(x => x.Count); 

      foreach (var item in results) 
       ListBox1.Items.Add(String.Format("{0} occured {1} times", item.Word, item.Count)); 

      foreach (var item in results) {//here trying to insert word its id and some other informations but for now they can stay null(yes,null allowed for them) 
       id++; 
       SqlCommand cmd = new SqlCommand("insert into word values('" + id + "','" + item.Word.Text + "','0'),'0'),'0'),'0')", con); 
       cmd.ExecuteNonQuery(); 
       con.Close(); 

      } 

     } 

Я всегда получаю эту ошибку, когда я нажимаю кнопку;

ExecuteNonQuery требует открытого и доступного соединения. Текущее состояние соединения закрыто.

EDIT1:

foreach (var item in results) { 
       con.Open(); 
       id++; 
       SqlCommand cmd = new SqlCommand("insert into word values('" + id + "','" + item.Word + "','0','0','0','0')", con); 
       cmd.ExecuteNonQuery(); 
       con.Close(); 

      } 

Я изменился, как это, но теперь я получаю эту ошибку

Подключение не было закрыто. Текущее состояние соединения открыто.

+0

con.Open() перед cmd.ExecuteNonQuery() ... Вы сказали, какое соединение ваш запрос будет использовать, но вы не открыли Это – Veljko89

ответ

0

Попробуйте изменить последние строки кода на мой пример. Вы закрывали свое соединение с базой данных каждый раз, когда выполняете повторную подборку результатов.

using (conn){ 
    conn.Open(); 

    foreach (var item in results) {//here trying to insert word its id and some other informations but for now they can stay null(yes,null allowed for them) 
     id++; 
     SqlCommand cmd = new SqlCommand("insert into word values('" + id + "','" + item.Word.Text + "','0'),'0'),'0'),'0')", con); 
     cmd.ExecuteNonQuery(); 
    } 
} 
0

Вы должны закрыть соединение после

using (con){ 
     con.Open(); 

     foreach (var item in results) {//here trying to insert word its id and some other informations but for now they can stay null(yes,null allowed for them) 
      id++; 
      SqlCommand cmd = new SqlCommand("insert into word values('" + id + "','" + item.Word.Text + "','0'),'0'),'0'),'0')", con); 
      cmd.ExecuteNonQuery(); 
     } 
    } 
con.close();