C# using statement catch error

后端 未结 16 1330
轻奢々
轻奢々 2021-01-30 14:06

I am just looking at the using statement, I have always known what it does but until now not tried using it, I have come up with the below code:

 using (SqlComma         


        
16条回答
  •  北荒
    北荒 (楼主)
    2021-01-30 14:34

    This code should be as follows to ensure timely closing of the connection. Closing just the command doesn't close the connection:

    using (SqlConnection con = new SqlConnection(Settings.Default.qlsdat_extensionsConnectionString))
    using (SqlCommand cmd = new SqlCommand(reportDataSource, con))
             {
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.Parameters.Add("@Year", SqlDbType.Char, 4).Value = year;
                 cmd.Parameters.Add("@startDate", SqlDbType.DateTime).Value = start;
                 cmd.Parameters.Add("@endDate", SqlDbType.DateTime).Value = end;
                 cmd.Connection.Open();
    
                 DataSet dset = new DataSet();
                 new SqlDataAdapter(cmd).Fill(dset);
                 this.gridDataSource.DataSource = dset.Tables[0];
             }
    

    To answer your question, you can do the same in a finally block, but this scopes the code nicely and ensures that you remember to clean up.

提交回复
热议问题