|
|
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
На .NET пишу первую программу, так что хочу немного уточнить правильность своих действий: при добавлени новой строки в таблицу БД, я просто добавляю еще одну строку в DataTable и соответсвенно добавляется строка в DataGridView, а не обновляю всю таблицу из БД целеком, правильно ли я делаю? Насколько часто обычно обновляют весь Grid целиком, ведь другие пользователи могут сделать обнавления в БД и данные в необнавленном Гриде не будут соответсвовать. В общем посоветуйте, пожалуйста, как лучще поступать. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:55 |
|
||
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
public void MainCardUpdate() { SqlConnection Connection = new SqlConnection("server=STRIZZZ;" + "Trusted_Connection=yes;" + "database=Cont; " + "connection timeout=30"); string commandStringContainers = "select * from vContainers"; SqlCommand Command = Connection.CreateCommand(); Command.CommandText = commandStringContainers; SqlDataAdapter dataAdapterContainers = new SqlDataAdapter(); dataAdapterContainers.SelectCommand = Command; DataSet dataSet = new DataSet(); Connection.Open(); dataAdapterContainers.Fill(dataSet, "vContainers"); dataSet.AcceptChanges(); DataTable dataTableCont = dataSet.Tables["vContainers"]; Connection.Close(); GridCont.DataSource = dataTableCont; GridCont.Refresh(); } вызов этой процедуры при запуски программы получает данные с БД на ура, а потом никакие изменения при вызове этой процедуры не поступают, хотя они есть. подскажите решение пробелмы, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 15:43 |
|
||
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
я думаю, что ошибка в том что Вы сразу и выбираете и обновляете ДатаСет а их надо разделять к примеру на ФормЛоад вешает заполнение ДатаСета а в MainCardUpdate() вызываешь метод Update у ДатаАдаптера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 09:30 |
|
||
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
HandKot дело в том, что формлоад происходит при загрузки программы, да и обновления, как я уже говорил при загрузки нормально происходят, а нужно обновления в ходе выполнения программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 11:57 |
|
||
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
либо я чего-то не догоняю, либо.. вот твой код Код: plaintext 1. 2. 3. 4. 5. 6. 7. Если Вы только что заполнили ДатаСет, то какие там могут быть изменения? пойдем другим путем strizzz при добавлени новой строки в таблицу БД, я просто добавляю еще одну строку в DataTable и соответсвенно добавляется строка в DataGridView, а не обновляю всю таблицу из БД целеком, правильно ли я делаю? в полне strizzz Насколько часто обычно обновляют весь Grid целиком, ведь другие пользователи могут сделать обнавления в БД и данные в необнавленном Гриде не будут соответсвовать. у меня для энтих случаев есть кнопка Apply по нажатию этой кнопки вызывается метов Update у ДатаАдаптера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 13:30 |
|
||
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
HandKot HandKotЕсли Вы только что заполнили ДатаСет, то какие там могут быть изменения? я уже решил, что буду делать тоже с кнопкой "Apply" как и у вас, так что пока добавляю только в БД , а не в датасет, а потом пытаюсь по нажаите кнопки обновить Грид, но как я уже говорил, что обновляется только после перезапуска. HandKotу меня для энтих случаев есть кнопка Apply по нажатию этой кнопки вызывается метов Update у ДатаАдаптера Изобразил нечто такое: SqlDataAdapter dataAdapterContainers = new SqlDataAdapter(); SqlConnection Connection = new SqlConnection("server=STRIZZZ;" + "Trusted_Connection=yes;" + "database=Cont; " + "connection timeout=30"); DataSet dataSet = new DataSet(); DataTable dataTableCont = new DataTable(); public MainCard() { InitializeComponent(); string commandStringContainers = "select * from vContainers"; SqlCommand Command = Connection.CreateCommand(); Command.CommandText = commandStringContainers; dataAdapterContainers.SelectCommand = Command; Connection.Open(); dataAdapterContainers.Fill(dataSet, "vContainers"); dataTableCont = dataSet.Tables["vContainers"]; Connection.Close(); GridCont.DataSource = dataTableCont; //GridCont.Refresh(); } public void MainCardUpdate() { Connection.Open(); dataAdapterContainers.Update(dataSet, "vContainers"); Connection.Close(); } опять та же история ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 16:33 |
|
||
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
если данные в базе появляются, значит надо обновить грид чот-то типа Bind или Refresh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 17:16 |
|
||
|
Обновления DataSet, DataGridView
|
|||
|---|---|---|---|
|
#18+
public void MainCardUpdate() { Connection.Open(); dataAdapterContainers.Update(dataSet, "vContainers"); Connection.Close(); } опять та же история Может не совсем в тему но... 1. Зачем открывать - закрывать соединение... Адаптер и так это делает... 2. Датасет что локальный? Данные только для отображения??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 10:58 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=105&tid=1353201]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 363ms |

| 0 / 0 |
