我打电话ExecuteReader();来获取数据,然后我需要通过另一个查询来获取另一个数据。我的结构一直都是这样的:
class SomeClass
{
public static void Main(String[] args)
{
SqlConnection sqlConn = new SqlConnection();
sqlConn.ConnectionString = "some connection string"
SqlCommand SQLCmd = new SqlCommand();
SQLCmd.CommandText = "some query";
SQLCmd.Connection = sqlConn;
sqlConn.Open();
sqlReader = SQLCmd.ExecuteReader();
while (sqlReader.Read())
{
//some stuff here
}
sqlReader.Dispose();
sqlReader.Close();
sqlConn.Close();
SQLCmd.CommandText = "another query";
sqlConn.Open();
sqlReader = SQLCmd.ExecuteReader();
while (sqlReader.Read())
{
//some other stuff here
}
sqlReader.Dispose();
sqlReader.Close();
sqlConn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
它们共享相同的连接字符串。他们还能分享什么?他们可以共享sqlConn.Open(); 吗?资源分配和避免错误的正确方法是什么?
顺便说一句,它按原样工作。提前致谢。
我正在开发一个asp.net项目.我需要使用两种不同的条件过滤数据库,并在饼图中显示每个条件.所以我需要在一个查询中获得两列.
第1栏:
select COUNT (*) 'OAS' from atmterminalfile (nolock) where Atstatu='2' and atlinestat ='1'
Run Code Online (Sandbox Code Playgroud)
第2栏:
select COUNT (*) 'OFS' from atmterminalfile (nolock) where Atstatu='2' and atlinestat ='2'
Run Code Online (Sandbox Code Playgroud)
我搜索了许多解决方案,我尝试了UNION,但结果就是这个
| OAS |
|----------------|
| Column 1 Count |
| Column 2 Count |
Run Code Online (Sandbox Code Playgroud)
我只需要这个.
| OAS | OFS |
---------------------------------------
| Column 1 Count | Column 2 Count |
Run Code Online (Sandbox Code Playgroud)