1989priya Ответов: 5

Разница между dataset и datatable


Привет........

Я хочу знать о dataset и datatable.

Datatable-это как одна таблица в базе данных, а dataset-как база данных, содержащая несколько таблиц.

Но когда я пишу код набора данных
SqlDataAdapter da = new SqlDataAdapter("select * from tab5,tab6",con);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();



Набор данных извлекает данные из обеих таблиц.

кодирование datatable
SqlDataAdapter da = new SqlDataAdapter("select * from tab5,tab6",con);

DataTable dt = new DataTable();
da.Fill(dt);

GridView1.DataSource = dt;
GridView1.DataBind();



Datatable также извлекает данные из обеих таблиц.

Теперь мой вопрос заключается в том, что такое разница между dataset и datatable

5 Ответов

Рейтинг:
33

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

DataTable - думайте как одна таблица базы данных.

DataSet - думайте как целая база данных, состоящая из всех таблиц.

=> (подразумевает) DataSet (база данных) - это набор таблиц данных (таблиц).

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

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

Ваш пример -
Теперь перейдем к вашему примеру.
На самом деле вы извлекаете данные из одной таблицы, а не из двух, поскольку у вас есть один запрос select.

Вы упомянули две таблицы, но в конечном итоге это дает результат как одна таблица, соединяя их.

Если вы попытаетесь использовать несколько операторов select, извлекающих данные из разных таблиц, то увидите, что DataTable не сможет удержать результат, и DataSet преуспеет.


Raj@88

Предположим, у меня есть 2 таблицы, скажем-Login и Employee, и есть связь между этими 2 таблицами в одной базе данных, и я получаю данные в виде сетки . в сетке у меня есть одна кнопка связи для каждой строки , когда я нажимаю эту кнопку связи, чем эта связанная строка перемещается из одной таблицы в другую table...in в таком случае, что я буду использовать dataset или datatable..

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Привет @ashishadi,

Спасибо, что задали мне этот вопрос. У меня есть несколько вопросов и сомнений следующим образом...

Вы показываете данные из обеих таблиц.
Я имею в виду, что вы, должно быть, соединяете таблицы, извлекаете данные и затем показываете их в GridView, верно ?

И я не могу этого понять - "при нажатии на эту ссылку строка будет перемещаться из одной таблицы в другую"... Что именно ты пытаешься сделать ? Пожалуйста, объясните подробнее.

Спасибо,
Тадит

Raj@88

если у меня есть база данных с таблицами login , employee1 и employee2

а также иметь 2 вида сетки 1-й вид сетки для извлечения данных из логина и employee1 ,

в 1-м представлении сетки есть кнопка ссылки с именем activate для каждой строки n когда я нажимаю эту кнопку активации, данные перемещаются из таблицы employee1 в таблицу employee2 (employee1 & employee2 имеют одинаковую структуру), а представление сетки 2 используется для извлечения данных employee2 ..в этом случае что я буду использовать dataset или datatable..

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Итак, вы заполняете два вида сетки. Один от входа и employee1, а другой от employee2.

Поскольку вы заполняете два представления сетки одновременно, вы можете использовать DataSet, который будет содержать оба результирующих элемента.
Один DataTable будет содержать соединительные данные от login и employee1, а другой DataTable будет содержать данные от employee2.

Raj@88

Ладно...спасибо...очень много :)

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Добро пожаловать... В любое время. :)

Raj@88

Тадит Даш сэр.. как мы уже обсуждали ..я использовал набор данных, все работает нормально ...но проблема в том , что я не мог получить данные в gridview2 из таблицы 2 (SlideShowTable2)..

я могу отправить мою запись ..может у пожалуйста, пришлите мне УР почты-ID
спасибо...

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Хорошо. Вы можете послать меня.
Но также пришлите мне скрипты создания базы данных, так как вы получаете данные из базы данных.
В противном случае у меня возникнут проблемы при запуске приложения.

Raj@88

Сэр, я использую базу данных Access..

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Хорошо. Я дам тебе знать...

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Привет @ashishadi,

Я отладил ваш код и обнаружил, что таблица "SlideShowTable1" не имеет никаких данных, так как она ничего не возвращает. Когда я заменяю его на "SlideShowTable", я получаю данные, и сетка заполняется...

Дело-1
------
Запрос ->


Select u.U_id ,u.U_name, u.U_Email,s.ImageName ,s.Description,s.CategoryName,s.ADshop_name,s.ADShop_Address,s.ADshop_city,s.ADshop_mob,s.ADshop_Email,s.AreaName,s.startdate,s.enddate,s.ImagePath,s.diffrence
from LOGIN u, SlideShowTable1 s
where u.U_id=s.U_id


Это не возвращает никаких данных, так как используется "SlideShowTable1".

Дело-2
------
Запрос ->


Select u.U_id ,u.U_name, u.U_Email,s.ImageName ,s.Description,s.CategoryName,s.ADshop_name,s.ADShop_Address,s.ADshop_city,s.ADshop_mob,s.ADshop_Email,s.AreaName,s.startdate,s.enddate,s.ImagePath,s.diffrence
from LOGIN u, SlideShowTable s
where u.U_id=s.U_id


Этот запрос возвращает данные, и GridView заполняется по мере использования таблицы "SlideShowTable".

Дело-3
------
Запрос -> (Получение данных только из таблицы "SlideShowTable1" )


Select s.ImageName, s.Description, s.CategoryName, s.ADshop_name, s.ADShop_Address, s.ADshop_city, s.ADshop_mob, s.ADshop_Email, s.AreaName, s.startdate, s.enddate, s.ImagePath, s.diffrence from SlideShowTable1 s


Это тоже ничего не возвращает.


Итак, в основном я имею в виду, что таблица "SlideShowTable1" не имеет никаких записей. И я не могу открыть этот файл .mdb, так как у меня нет Microsoft Access. Так что вам лучше проверить и дать мне знать...

Raj@88

главное не решить проблему кар Дия Хайн...

в любом случае...спасибо..

агар Кабхи проблема аайто...пожалуйста, помогите мне

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Конечно, мужик... В любое время. Быть в контакте.
Кстати, в чем была проблема ?

Raj@88

я сделал это обновление..

двойное различие = 0;
если (txtdiffrence.Текст != "")
{
diff = преобразовать.Метод todouble(txtdiffrence.Текст);
}

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Хорошо. Итак, у вас была проблема при обновлении, но я смотрел на привязку данных.

Рейтинг:
2

PIEBALDconsult

Набор данных содержит таблицы данных и их связи (если они определены в базе данных). Использование набора данных с DataGridView позволяет представлению "детализировать" связанные таблицы.

Я (и некоторые другие опытные разработчики) не использую наборы данных, адаптеры данных и DataGridViews для "реальной работы".


Рейтинг:
2

Srinivas Lakkapally

набор данных
1. Его соединения. всякий раз, когда вы хотите получить данные из базы данных. он подключается косвенно к базе данных и создает виртуальную базу данных в локальной системе. затем отключился от базы данных.
2. его легко читать и записывать данные из виртуальной базы данных.

объект DataTable
Объект DataTable представляет собой одну таблицу в базе данных. Он имеет имя строки и столбцы.
Между dataset и datatable нет большой разницы, dataset-это просто набор таблиц данных.


Рейтинг:
1

Aarti Meswania

объект DataTable = одиночный таблица содержит некоторые данные
набор данных = кучка из нескольких таблиц данных

Счастливого Кодирования!
:)