2014-09-21 3 views
1

Я действительно смущен концепцией набора данных в ado.net, что он отключен.как отключен набор данных?

, если скажу, если мы запустим оператор обновления SQL с помощью адаптера данных и набора данных в этом

string stUpdate= "update customer set name = 'Faizan' where ID = 5" 
SqlDataAdapter da= new SQLDataAdapter(stUpdate, SQLCONNECTIONOBJECT) 
DataSet ds = new Dataset 
da.Fill(ds, "tablename") 

основная таблица клиентов в моей базе данных фактически обновляются. Итак, каким образом DATASET отключен. Обновление действий выполнять и в таблице клиентов обновленного

ответ

1

Термин отключен изображен более архитектурный узор. Если вы переходите к деталям реализации, все выглядит/подключается.

Термин «отключенный» используется для передачи его свойства конструкции, что ему не требуется подключение к базе данных в реальном времени. Вы заполняете свой набор данных, вносите в него изменения, сохраняете набор данных на диск, останавливаете приложение, через день запускаете приложение, читаете набор данных с диска и записываете сделанные вчера изменения в хранилище данных с помощью http://msdn.microsoft.com/en-us/library/system.data.common.dbdataadapter(v=vs.110).aspx.

С отличным Джоном Паппа this excerpt from his msdn article series Data Points

Вашей ситуации в будет диктовать, когда и где вы будете использовать DataSet по сравнению с DataReader. Например, отключенный характер DataSet позволяет преобразовать его в XML и отправить по сети через HTTP, если это необходимо. Это делает его идеальным в качестве возвращаемого транспортного средства из объектов бизнес-уровня и веб-сервисов. DataReader не может быть сериализован и, следовательно, не может быть передан между границами физического уровня, где могут быть только строковые (XML) данные.

Хотя он выглядит «подключенным» к вашей базе данных, я могу немного расширить ваш пример, чтобы пояснить, что «подключено» относительно. Лучше говорить о зависимости, и DataSet зависит только от DataAdapter.

StorageEnum store = Storage.Oracle; 
string stUpdate= "update customer set name = 'Faizan' where ID = 5"; 
DbDataAdapter da = null; 
swith (store) 
{ 
    case StorageEnum.SqlServer: 
     da= new SQLDataAdapter(stUpdate, SQLCONNECTIONOBJECT) 
    break; 
    case StorageEnum.Oracle: 
     da= new OracleDataAdapter(stUpdate, ORACLECONNECTIONOBJECT) 
    break; 
    default: 
     da= new OleDBDataAdapter(stUpdate, OLEDBCONNECTIONOBJECT) 
    break; 
}; 
DataSet ds = new Dataset(); 
da.Fill(ds, "tablename") 

Как вы можете видеть только изменения, необходимые для поддержки нескольких баз данных для обновления/Вставить/Удалить и выберите только необходимые изменения используемого DataAdapter.

0

Это может быть лучше понято путем сравнения набора данных с DataReader

using(SqlConnection con = Dal.GetConnection()) 
{ 
    while(reader.Read()) 
    { 
    // some code 
    } 
} 

соединением является стойким в течение всего выше коды, где, как в наборе данных он устанавливает соединение, извлекают данные & закрывает соединение в zap! Так что его отключили !!!

Смежные вопросы