Делает SqlDataAdapter. Расположить на самом деле Близко связанный SqlConnection?

Когда пост будет обновлен, я предполагаю, что вы можете получить идентификатор этого поста.

Затем вы можете проверить, есть ли в вашей структуре данных ключ «комментарии». Если это не так, добавьте ключ и создайте массив, содержащий комментарий и пользователя в качестве первого массива.

Если он уже существует, добавьте новый массив с пользователем и комментарием, чтобы в каждом посте было несколько комментариев.

Например, используя array_map :

$blogPosts = array_map(function ($blogPost) use ($blogPostId, $comment) {
    if ($blogPost["id"] === $blogPostId) {
        isset($blogPost["comments"]) ? $blogPost["comments"][] = $comment : $blogPost["comments"] = [$comment];
        return $blogPost;
    }
    return $blogPost;

}, $blogPosts);

Php demo

9
задан Fabian Steeg 22 January 2009 в 15:54
поделиться

3 ответа

Первая вещь знать состоит в том, что DataAdapter действительно справляется и закрывает Ваше соединение при некоторых обстоятельствах. Например, при использовании DataAdapter, Вы, вероятно, воздействуете на Таблицы данных/Наборы данных с помощью.Fill () и.Update () функции.

От.Fill () документы:

Объект соединения, связанный с оператором SELECT, должен быть доступным, но это не должно быть открыто. Если соединение закрывается, прежде чем Заливку называют, это открыто для получения данных, то закрытый. Если соединение открыто, прежде чем Заливку назовут, это остается открытым.

.Update () документы ничего не упоминают о соединении вообще, таким образом, я ожидал бы должен управлять им вручную.

Теперь Вы спросили конкретно о Расположении () метод. Как Обновление, Расположение () документы конкретно не упоминают соединение, таким образом, я ожидал бы должен закрывать его вручную.

Наконец, мы можем изменить к лучшему код Bob King немного как это:

Using conn as New SqlConnection(""), _
      adapter as New SqlDataAdapter() With {.Connection = conn}
    'Do stuff
End Using

Или в C#:

using (SqlConnection conn = new SqlConnection(""))
using (SqlDataAdapter adapter = new SqlDataAdapter() {Connection = conn})
{
    // Do stuff
}

Не 100% я получил инициализировать синтаксис для права адаптера, но я ввел его непосредственно в окно ответа. Я зафиксирую его позже в случае необходимости.

10
ответ дан 4 December 2019 в 20:25
поделиться

Нет, это не располагает соединение. Я полагаю, что это не было должно. Вы могли бы хотеть использовать его в другом месте.

0
ответ дан 4 December 2019 в 20:25
поделиться

Насколько я знаю, что это не делает. Я использую вложенный Используя операторы, чтобы достигнуть этого, создать соединение сначала, затем создаю адаптер и поскольку операторы использования "появляются", адаптер Расположен, затем соединение Расположено, который действительно инициировал завершение:

Using conn as New SqlConnection("")
    Using adapter as New SqlDataAdapter() With {.Connection = conn}
        'Do stuff'
    End Using
End Using

Синтаксис фактически идентичен для C#, если это - Ваш предпочтительный язык.

1
ответ дан 4 December 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: