Можно ли использовать два объекта команды с одним открытым соединением в одной процедуре на VB.NET?Использование объекта SqlCommand в VB.NET
ответ
Да, вы можете. Пока вы не закрываете соединение между командами, он будет работать нормально.
Это C# пример, но я уверен, что вы можете работать это:
using (SqlConnection cn = new SqlConnection("Connection String"))
{
SqlCommand cmd1 = new SqlCommand("Command1", cn);
cmd1.CommandType = CommandType.StoredProcedure;
SqlCommand cmd2 = new SqlCommand("Command2", cn);
cmd2.CommandType = CommandType.StoredProcedure;
cn.Open();
// Execute cmd1
// Execure cmd2
}
Спасибо вам большое! – RedsDevils
Не забудьте проголосовать и принять, если он будет работать;) – GenericTypeTea
Хотелось бы проголосовать, но моя репутация меньше 15.: P – RedsDevils
Пример; любопытное псевдо, но вы должны получить концепцию.
dim cnn as connection
dim cmd as command
dim cmd2 as command
dim str1 as string
dim str2 as string
cnn.open
cmd.connection = cnn
cmd.command = str1
cmd.execute
cmd2.connection = cnn
cmd2.command = str2
cmd2.execute
cnn.close
Спасибо, много! – RedsDevils
Да. Вы можете использовать два или более объекта SqlCommand с одним открытым соединением. – Himadri
Но вы не можете использовать один объект Command для открытия двух DataReaders. – HardCode
На самом деле вы можете использовать один объект Command для открытия двух (или более) DataReaders, если в строке соединения установлено значение MultipleActiveResultSets = true. Однако использование MARS может иметь более низкую производительность, чем просто «обычный способ» с использованием одного соединения на DataReader, ваш пробег может отличаться. –