Причина, по которой я спрашиваю, состоит в том, что первоначально все ссылки и примеры указывали на метод 2.
Но метод 1, кажется, делает намного больше в гораздо меньшем количестве кода.Конечно, его
- аккуратнее,
- лучше
- Легче читать / следовать
- и имеет такие функции, как преобразование DBNulls в ноль.Вместо того, чтобы делать это самому.
- Обрабатывает открытие и закрытие соединений / считывателей данных.
Не могу придумать каких-либо причин для использования метода 2 по сравнению с методом 1.
(Метод 2, возможно, мог иметь предложение using, но из-за большого количества кода он был помещен в отдельную функцию, которую нужно вызывать из другого wher, и, следовательно, закрывая ее, закрывал устройство чтения данных, делая данные недоступными.)
Во всяком случае, я серьезно думаю о том, чтобы вернуться назад и переключить весь мой веб-сервис на использование метода 1, поскольку он кажется намного лучше и удобнее в обслуживании.Кто-нибудь может предложить иначе?
Метод 1:
using (var db = Database.OpenConnectionString(Library.Properties.Settings.Default.dbConnString, "System.Data.SqlClient"))
{
Int32 AccNo = db.QuerySingle("SELECT AccNo FROM Tasks WHERE TaskID = " + TaskID);
}
Метод 2:
sqlComm = new SqlCommand();
sqlCon = new SqlConnection();
sqlComm.Connection = sqlCon;
sqlCon.ConnectionString = global::Library.Properties.Settings.Default.dbConnString;
sqlComm.CommandText = "SELECT AccNo FROM Tasks WHERE TaskID = " + TaskID;
sqlCon.Open();
SqlDataReader data = sqlComm.ExecuteReader();
while (data.Read())
{
Int32 AccNo = (Int32)data["AccNo"];
}
sqlCon.Close();
sqlComm.Dispose();
if (data != null)
data.Close();