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