当访问C#中的多个表时,是否可以重用连接
本文关键字:是否 连接 访问 | 更新日期: 2023-09-27 17:59:56
我是C#的新手。我有一个程序可以读取单个数据库中的多个表。假设我正在读取表A,所以在读取之前,我必须连接到C#中的数据库。在这之后,我必须从表B中获取一些信息。我必须再次提供服务器信息、用户ID和密码才能连接到数据库吗?
只要用户有权读取表a和表B,就可以对两个表使用单个连接。
例如,如果使用SqlCommands和SqlConnection,请按如下方式设置连接:
SqlConnection connection;
SqlCommand commandA;
SqlCommand commandB;
connection = new SqlConnection("some connection string");
connection.Open();
commandA = new SqlCommand();
commandA.Connection = connection;
commandB = new SqlCommand();
commandB.Connection = connection;
然后,您可以根据需要在commandA和commandB上设置CommandType和CommandText。只要连接仍然打开,并且用户可以访问这两个表,就可以设置您。
我们需要查看您的代码(请屏蔽您的实际用户凭据),但如果您使用单独的连接来执行提取,简短的答案是肯定的。
如果您的SqlConnection对象尚未被释放或关闭,您可以在下一个SqlCommand 上重用它
可以。SqlConnection实现IDisposible,因此将其封装在using块中。
Psuedocode:
try
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
SqlCommand comm = new SqlCommand(conn);
comm.CommandText = "Select Col1, Col2 From Table1";
SqlCommand comm1 = new SqlCommand(conn);
comm.CommentText = "Select Col1, Col2 From Table2";
//Execute First Command Code
//Execute Second Command Code
} //Connection will be closed and disposed
}
catch (Exception e)
{
//Handle e - Really want to handle specific types of exceptions, like SqlExceptions etc.
}