IMHO, fs.readFile()
следует избегать, потому что он загружает ВСЕ файл в память и не будет вызывать обратный вызов до тех пор, пока все файлы не будут прочитаны.
Самый простой способ прочитать текстовый файл читать его по строкам. Я рекомендую BufferedReader :
new BufferedReader ("file", { encoding: "utf8" })
.on ("error", function (error){
console.log ("error: " + error);
})
.on ("line", function (line){
console.log ("line: " + line);
})
.on ("end", function (){
console.log ("EOF");
})
.read ();
. Для сложных структур данных, таких как .properties или json-файлов, вам нужно использовать парсер (внутри он также должен использовать буферный считыватель).
Нет, Избавление эти SqlCommand
не произведет Соединение. Лучший подход должен был бы также перенестись SqlConnection
в блоке использования также:
using (SqlConnection conn = new SqlConnection(connstring))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(cmdstring, conn))
{
cmd.ExecuteNonQuery();
}
}
Иначе, Соединение неизменно тем, что Команда, которая использовала его, была расположена (возможно, именно это Вы хотите?). Но имейте в виду, что от Соединения нужно избавиться также, и вероятно более важное для избавления, чем команда.
РЕДАКТИРОВАНИЕ:
я просто протестировал это:
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
using (SqlCommand cmd = new SqlCommand("select field from table where fieldid = 1", conn))
{
Console.WriteLine(cmd.ExecuteScalar().ToString());
}
using (SqlCommand cmd = new SqlCommand("select field from table where fieldid = 2", conn))
{
Console.WriteLine(cmd.ExecuteScalar().ToString());
}
conn.Dispose();
первая команда была расположена, когда из блока использования вышли. Соединение было все еще открыто и хорошо для второй команды.
Так, избавляясь от команды определенно не избавляется от соединения, которое она использовала.
SqlCommand. Расположите не будет достаточно, потому что многие SqlCommand (s) могут (ре) использование тот же SqlConnection. Центрируйте свое внимание на SqlConnection.