C# 如果没有必要,名称会与第一个一起出现。为什么要查询两次,第一次查询时所有内容都已存在。这不是一个好方法。为什么不直接将数据提取到一个数据表中并查询该数据表呢?除非它是一个非常小的表,否则选择整个表永远不会有效率。此外,第二个查询是不必要的,名称将与第一个一

C# 如果没有必要,名称会与第一个一起出现。为什么要查询两次,第一次查询时所有内容都已存在。这不是一个好方法。为什么不直接将数据提取到一个数据表中并查询该数据表呢?除非它是一个非常小的表,否则选择整个表永远不会有效率。此外,第二个查询是不必要的,名称将与第一个一,c#,sql,C#,Sql,如果没有必要,名称会与第一个一起出现。为什么要查询两次,第一次查询时所有内容都已存在。这不是一个好方法。为什么不直接将数据提取到一个数据表中并查询该数据表呢?除非它是一个非常小的表,否则选择整个表永远不会有效率。此外,第二个查询是不必要的,名称将与第一个一起出现。为什么要查询两次,第一个查询中的所有内容都已存在。这不是一个好方法。你的建议更整洁,它们不会对查询本身产生任何实际影响。由于人工查询很简单,我从C#端而不是SQL端解决效率问题。创建两次连接可能会大大降低效率。。。如果是这样,使用块在内



如果没有必要,名称会与第一个一起出现。为什么要查询两次,第一次查询时所有内容都已存在。这不是一个好方法。为什么不直接将数据提取到一个数据表中并查询该数据表呢?除非它是一个非常小的表,否则选择整个表永远不会有效率。此外,第二个查询是不必要的,名称将与第一个一起出现。为什么要查询两次,第一个查询中的所有内容都已存在。这不是一个好方法。你的建议更整洁,它们不会对查询本身产生任何实际影响。由于人工查询很简单,我从C#端而不是SQL端解决效率问题。创建两次连接可能会大大降低效率。。。如果是这样,使用块在
内执行这两个查询可能会大大加快速度。您的建议更整洁,它们不会对查询本身产生任何实际影响。由于人工查询很简单,我从C#端而不是SQL端解决效率问题。创建两次连接可能会大大降低效率。。。如果是这样,使用
块在
内执行这两个查询可能会大大加快速度。事实上@Steve在您的情况下是正确的,它应该只执行一个查询—一次性获得Name&ID。看看他的答案。我正在努力学习如何做多个问题。。顺便说一句,这只是一个练习…@samEE666更新了我的答案,专门展示了如何用一个命令使用多个查询。我应该如何从第二个查询中获得结果??请解释一下code@samEE666当执行
.NextResult()
时,DataReader会自动切换到第二个查询。所以当(dr.Read())
开始阅读第二个查询时,@Steve实际上是对的,在您的情况下,应该只有一个查询—一次获得Name&ID。看看他的答案。我正在努力学习如何做多个问题。。顺便说一句,这只是一个练习…@samEE666更新了我的答案,专门展示了如何用一个命令使用多个查询。我应该如何从第二个查询中获得结果??请解释一下code@samEE666当执行
.NextResult()
时,DataReader会自动切换到第二个查询。所以当(dr.Read())开始读取第二个查询时,您

 static void Main(string[] args)
        {
        try
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\MUHAMMAD\Documents\samEE.mdf;Integrated Security=True;Connect Timeout=30";
            SqlCommand cmd = new SqlCommand("Select Id,Name from Student", con);
            con.Open();
            SqlDataReader dr;
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                Console.WriteLine("Id is:"+dr[0]+" Name is:"+ dr[1]);

            }
            con.Close();
            con.Dispose();  
            Console.ReadKey();
        }
           catch (Exception ex)
          {
           Response.Write("Error: " + ex.Message);
           }
        finally
          {
            if(con.State == ConnectionState.Open)
             con.Close();
            }

        }
string conString = ".....";
using(SqlConnection con = new SqlConnection(conString))
using(SqlCommand cmd = new SqlCommand("Select ID, Name from Student", con))
{
   con.Open();
   using( SqlDataReader dr = cmd.ExecuteReader())
   while (dr.Read())
   {
        Console.WriteLine("Id is:"+dr[0]+" Name is:"+ dr[1]);
   }
}
using(SqlCommand cmd = new SqlCommand("Select ID, Name from Student;" + 
                                      "Select CourseID, CourseName from Course", con))
using(SqlDataReader reader = cmd.ExecuteReader())
{
    do
    {
        // First time reads the student, when finished, the NextResult call switch the reader
        // on the second set and then exits (because there are no more result sets)
        while(reader.Read())
        {

        }
    }while(reader.NextResult());
static void Main(string[] args)
{
    SqlConnection con = new SqlConnection();
    con.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\MUHAMMAD\Documents\samEE.mdf;Integrated Security=True;Connect Timeout=30";

    con.Open();

    SqlCommand cmd = new SqlCommand("Select * from Student", con);
    SqlDataReader dr;
    dr = cmd.ExecuteReader();
    while (dr.Read())
    {
        Console.WriteLine("Id is:"+dr[0]+" Name is:"+ dr[1]);
    }
    dr.Close();

    //con.Close();
    //SqlConnection con2 = new SqlConnection();
    //con2.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\MUHAMMAD\Documents\samEE.mdf;Integrated Security=True;Connect Timeout=30";

    cmd = new SqlCommand("Select Name from Student", con);
    //con2.Open();
    SqlDataReader dr2;
    dr2 = cmd.ExecuteReader();
    while (dr2.Read())
    {
        Console.WriteLine("Name is :"+ dr2[0]);
    }    
    dr2.Close();

    con.Close();
    Console.ReadKey();
}
string connString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\MUHAMMAD\Documents\samEE.mdf;Integrated Security=True;Connect Timeout=30";
using SqlConnection con = new SqlConnection(connString))
{
    using(SqlCommand cmd = new SqlCommand("Select * from Student", con))
    {
        ....
    }
}
SqlCommand cmd = new SqlCommand("SELECT Something1 FROM Table1;SELECT Something2 FROM Table2" , con)
con.Open();
SqlDataReader dr = cmd.ExecuteReader();

do {
  while (dr.Read())
  {
      // do stuff with results
  }
} while (dr.NextResult())