当访问C#中的多个表时,是否可以重用连接

本文关键字:是否 连接 访问 | 更新日期: 2023-09-27 17:59:56

我是C#的新手。我有一个程序可以读取单个数据库中的多个表。假设我正在读取表A,所以在读取之前,我必须连接到C#中的数据库。在这之后,我必须从表B中获取一些信息。我必须再次提供服务器信息、用户ID和密码才能连接到数据库吗?

当访问C#中的多个表时,是否可以重用连接

只要用户有权读取表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.
}