2014-03-03 23 views
0
private void button6_Click(object sender, EventArgs e) 
    { 
     SqlConnection MySqlConnection; 
     SqlDataReader m_dr; 
     SqlCommand command; 
     DataTable p_table = new DataTable(); 

     MySqlConnection = new SqlConnection("Data Source=A-A-PC\\MSSQLSERVER1;Initial Catalog=lights and sounds;User ID=sa;Password=itexpert;"); 

     MySqlConnection.Open(); 
     command = new SqlCommand("SELECT * FROM inventory WHERE package='" + textBox7.Text + "'", MySqlConnection); 
     m_dr = command.ExecuteReader(); 

     if (m_dr.HasRows) 
     { 
      SqlCommand command1 = new SqlCommand("Select * from inventory", MySqlConnection); 
      p_table.Clear(); 
      SqlDataAdapter m_d = new SqlDataAdapter("Select * from inventory", MySqlConnection); 

      m_d.Fill(p_table); 
      listView1.Items.Clear(); 

      for (int i = 0; i < p_table.Rows.Count; i++) 
      { 
       DataRow drow = p_table.Rows[i]; 
       if (drow.RowState != DataRowState.Deleted) 
       { 
        ListViewItem lvi = new ListViewItem(drow["id"].ToString()); 
        lvi.SubItems.Add(drow["package"].ToString()); 
        lvi.SubItems.Add(drow["number"].ToString()); 
        listView1.Items.Add(lvi); 
       } 
      } 
     } 
    } 

回答

2

必须启用连接上的多个活动结果集关闭:

MySqlConnection = new SqlConnection("Data Source=A-A-PC\\MSSQLSERVER1;Initial Catalog=lights and sounds;User ID=sa;Password=itexpert;MultipleActiveResultSets=True"); 

干杯

1

添加"MultipleActiveResultSets=True;连接字符串

Multiple Active Result Sets (MARS)

Multiple Active Re集合(MARS)是一种与SQL Server一起使用的功能,允许在单个连接上执行多个批处理。当启用MARS以用于SQL Server时,每个使用的命令对象都会向连接添加一个会话。

Using Multiple Active Result Sets (MARS)

SQL Server 2005中引入了在应用中多活动结果集(MARS)访问数据库引擎的支持。在早期版本的SQL Server中,数据库应用程序无法在连接上维护多个活动语句。使用SQL Server缺省结果集时,应用程序必须处理或取消一个批处理中的所有结果集,然后才能在该连接上执行任何其他批处理。 SQL Server 2005引入了新的连接属性,该属性允许应用程序每个连接有多个挂起的请求,特别是每个连接有多个活动的默认结果集。

Enabling Multiple Active Result Sets

SQL Server 2005中有这么多的,在我看来,如果你一年你会发现的东西,每天新只读BOL新功能。其中之一是多活动结果集或MARS。多活动结果集是一种新的SQL Server 2005功能,简单地说,它允许用户同时在打开的连接上运行多个SQL批处理。

相关问题