powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / помогите разобраться!...
10 сообщений из 10, страница 1 из 1
помогите разобраться!...
    #34000334
WoRmS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
Добрый день! Раньше я писал БД на Delphi! Сейчас я хочу начать писать на Visual Studio  2005 . Вроде общие моменты я освоил! 
Подскажите какие мне использовать компоненты для того чтобы отредактировать запись! Ну ... раньше в Delhi в использовались компоненты DBTextBox и все такое! Там все было просто! А как тут не могу разобраться!!!

и ещё ...

Код: plaintext
1.
2.
3.
4.
подскажите где можно взять литературу по этому вопросу!!!????
Меня интересует, как отредактировать, удалить и добавить форму в интерактивном режиме!!!

Заранее спасибо!
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34001715
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WoRmS
Ну ... раньше в Delhi в использовались компоненты DBTextBox и все такое! Там все было просто!

В .NET нет деления DBTextBox или TextBox. Используйте просто TextBox + его свойство DataBindings
по второму вопросу непонятно, что Вам требуется?

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34001751
WoRmS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скиньте пожайлуста ссылку, где можно прочитать, как удалять записи, редактировать и добавлять их!
Я был бы очень признателен!
Или скиньте мне на почту, плизз....!)
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34004042
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код добавление:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
private void button1_Click(object sender, EventArgs e)
        {
            DataRow row = ((Alish)Application.OpenForms["Alish"]).AlishDataSet.ALISH.NewRow();
            row[ 1 ] = anbarId_Edit.Text;
            row[ 2 ] = frm_Postavshikler.PostavshikID;
            row[ 3 ] = Girish.filial_id;
            row[ 4 ] = Naim_Edit.Text;
            row[ 5 ] = tarix_edit.Text;
            row[ 7 ] = Nakladnoy_Edit.Text;
            row[ 8 ] = MalinAdi_edit.Text;
            if (Saxlanma_Edit.Enabled == true)
            {
                row[ 9 ] = Saxlanma_Edit.Text;
            }
            row[ 10 ] = AlishQiymeti_Edit.Text;
            row[ 11 ] = Miqdar_edit.Text;
            row[ 12 ] = Xerc_Edit.Text;
            row[ 13 ] = Odenish_Edit.Text;
            row[ 14 ] = Kom_Edit.Text;
            row[ 15 ] = Anbar_Edit.Text;
            row[ 16 ] = Postavshik_Edit.Text;
            ((Alish)Application.OpenForms["Alish"]).AlishDataSet.ALISH.Rows.Add(row);
            Close();
        }

код удаление:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        private void DeleteRecordButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;
            Form activechild = this.ActiveMdiChild;

                BindingManagerBase bm = (BindingManagerBase)this.BindingContext[((Alish)this.MdiChildren[ 0 ]).AlishGrid.DataSource, ((Alish)this.MdiChildren[ 0 ]).AlishGrid.DataMember];
                if (bm.Count >  0 )
                {
                    bm.RemoveAt(bm.Position);
                }
             this.Cursor = Cursors.Default; 
        }

код сохранение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
        private void SaveButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;
            ///-------------------------------------------------------------------------------------------------
                DataView myDV = new DataView(((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH,
                    String.Empty,
                    String.Empty,
                    DataViewRowState.ModifiedOriginal | DataViewRowState.Added | DataViewRowState.Deleted);
                if (myDV.Count ==  0 )
                {
                    MessageBox.Show("Dəyişiklik yoxdur!");
                }
                if (myDV.Count !=  0 )
                {
                    System.Transactions.TransactionOptions op = new System.Transactions.TransactionOptions();
                    op.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
                    op.Timeout = TimeSpan.Parse("00:30:00");
                    System.Transactions.CommittableTransaction ctx = new System.Transactions.CommittableTransaction(op);

                    try
                    {
                        ((Alish)this.MdiChildren[ 0 ]).aLISHTableAdapter.Update(((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH);
                        ctx.Commit();
                    }
                    catch (Exception ee)
                    {
                        ctx.Rollback();
                        string msg = ee.Message;
                        MessageBox.Show(msg);
                    }
                    finally
                    {
                        ctx.Dispose();
                        myDV.Dispose();
                    }
                }
                ///-------------------------------------------------------------------------------------------------
            this.Cursor = Cursors.Default;
        }

код отката данных:

Код: plaintext
1.
2.
3.
4.
5.
        private void RejectChButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;
                ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH.RejectChanges();
            this.Cursor = Cursors.Default;
        }

код для обновления:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        private void RefreshButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;

                ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH.Clear();
                ((Alish)this.MdiChildren[ 0 ]).aLISHTableAdapter.Fill(((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH);

            this.Cursor = Cursors.Default;
        }
код для отправки запроса на базу и заполнение датасет, и прочие (работа с МДИ формой):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
SqlConnection SQLCon = new SqlConnection(MyINI[ 1 ].GetValue("Connection", "ConnectionString", ""));
                    SQLCon.Open();

                    SqlCommand SQLCom = new SqlCommand();
                    SQLCom.CommandText = "SELECT D2.id, D2.tarix, D2.adi, d2.qisa_adi, D2.kurs " +
                                         "FROM valyuta D2, " +
                                         "(SELECT adi, MAX([tarix]) maxdate from valyuta where tarix<=@dt group by adi) D1 " +
                                         "WHERE D2.adi = D1.adi AND D2.[tarix] = D1.maxdate  and d2.qisa_adi=@v";
                    SQLCom.Connection = SQLCon;
                    SQLCom.Parameters.Add("@dt", SqlDbType.DateTime).Value = MyINI[ 1 ].GetValue("Valyuta", "Date", "");
                    SQLCom.Parameters.Add("@v", SqlDbType.NVarChar).Value = Valyuta_ComboBox.Text;

                    SqlDataAdapter SQLAdap = new SqlDataAdapter();                    
                    SQLAdap.SelectCommand = SQLCom;
                    SQLAdap.SelectCommand.ExecuteNonQuery();
                    DataSetMainForm.VALYUTA.Clear();
                    SQLAdap.Fill(DataSetMainForm.VALYUTA);

                    DataRowView ReadKurs = (DataRowView)BindingContext[DataSetMainForm.VALYUTA].Current;
                    string s = ReadKurs["kurs"].ToString();

                    //ВЫЧИСЛЯЕМ
                    ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.Tables["Alish"].Columns["val_alish_qiymeti"].Expression = this.DataSetMainForm.ALISH.alish_qiymetiColumn.ColumnName + "/" + s;
                    ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.Tables["Alish"].Columns["val_xerc"].Expression = this.DataSetMainForm.ALISH.xercColumn.ColumnName + "/" + s;
                    ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.Tables["Alish"].Columns["val_odenish"].Expression = this.DataSetMainForm.ALISH.odenishColumn.ColumnName + "/" + s;

                    //ИЗМЕНЯЕМ ФОРМАТ
                    ((Alish)this.MdiChildren[ 0 ]).Alish_Activated(((Alish)this.MdiChildren[ 0 ]), new EventArgs());
                    ((Alish)this.MdiChildren[ 0 ]).AlishBandedGridView.RefreshData();

                    SQLCon.Close();
                    SQLCon.Dispose();
                    SQLAdap.Dispose();
                    SQLCom.Dispose();

Удачи!

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34006656
WoRmS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Raminкод добавление:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
private void button1_Click(object sender, EventArgs e)
        {
            DataRow row = ((Alish)Application.OpenForms["Alish"]).AlishDataSet.ALISH.NewRow();
            row[ 1 ] = anbarId_Edit.Text;
            row[ 2 ] = frm_Postavshikler.PostavshikID;
            row[ 3 ] = Girish.filial_id;
            row[ 4 ] = Naim_Edit.Text;
            row[ 5 ] = tarix_edit.Text;
            row[ 7 ] = Nakladnoy_Edit.Text;
            row[ 8 ] = MalinAdi_edit.Text;
            if (Saxlanma_Edit.Enabled == true)
            {
                row[ 9 ] = Saxlanma_Edit.Text;
            }
            row[ 10 ] = AlishQiymeti_Edit.Text;
            row[ 11 ] = Miqdar_edit.Text;
            row[ 12 ] = Xerc_Edit.Text;
            row[ 13 ] = Odenish_Edit.Text;
            row[ 14 ] = Kom_Edit.Text;
            row[ 15 ] = Anbar_Edit.Text;
            row[ 16 ] = Postavshik_Edit.Text;
            ((Alish)Application.OpenForms["Alish"]).AlishDataSet.ALISH.Rows.Add(row);
            Close();
        }

код удаление:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        private void DeleteRecordButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;
            Form activechild = this.ActiveMdiChild;

                BindingManagerBase bm = (BindingManagerBase)this.BindingContext[((Alish)this.MdiChildren[ 0 ]).AlishGrid.DataSource, ((Alish)this.MdiChildren[ 0 ]).AlishGrid.DataMember];
                if (bm.Count >  0 )
                {
                    bm.RemoveAt(bm.Position);
                }
             this.Cursor = Cursors.Default; 
        }

код сохранение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
        private void SaveButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;
            ///-------------------------------------------------------------------------------------------------
                DataView myDV = new DataView(((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH,
                    String.Empty,
                    String.Empty,
                    DataViewRowState.ModifiedOriginal | DataViewRowState.Added | DataViewRowState.Deleted);
                if (myDV.Count ==  0 )
                {
                    MessageBox.Show("Dəyişiklik yoxdur!");
                }
                if (myDV.Count !=  0 )
                {
                    System.Transactions.TransactionOptions op = new System.Transactions.TransactionOptions();
                    op.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
                    op.Timeout = TimeSpan.Parse("00:30:00");
                    System.Transactions.CommittableTransaction ctx = new System.Transactions.CommittableTransaction(op);

                    try
                    {
                        ((Alish)this.MdiChildren[ 0 ]).aLISHTableAdapter.Update(((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH);
                        ctx.Commit();
                    }
                    catch (Exception ee)
                    {
                        ctx.Rollback();
                        string msg = ee.Message;
                        MessageBox.Show(msg);
                    }
                    finally
                    {
                        ctx.Dispose();
                        myDV.Dispose();
                    }
                }
                ///-------------------------------------------------------------------------------------------------
            this.Cursor = Cursors.Default;
        }

код отката данных:

Код: plaintext
1.
2.
3.
4.
5.
        private void RejectChButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;
                ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH.RejectChanges();
            this.Cursor = Cursors.Default;
        }

код для обновления:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        private void RefreshButton_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.AppStarting;

                ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH.Clear();
                ((Alish)this.MdiChildren[ 0 ]).aLISHTableAdapter.Fill(((Alish)this.MdiChildren[ 0 ]).AlishDataSet.ALISH);

            this.Cursor = Cursors.Default;
        }
код для отправки запроса на базу и заполнение датасет, и прочие (работа с МДИ формой):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
SqlConnection SQLCon = new SqlConnection(MyINI[ 1 ].GetValue("Connection", "ConnectionString", ""));
                    SQLCon.Open();

                    SqlCommand SQLCom = new SqlCommand();
                    SQLCom.CommandText = "SELECT D2.id, D2.tarix, D2.adi, d2.qisa_adi, D2.kurs " +
                                         "FROM valyuta D2, " +
                                         "(SELECT adi, MAX([tarix]) maxdate from valyuta where tarix<=@dt group by adi) D1 " +
                                         "WHERE D2.adi = D1.adi AND D2.[tarix] = D1.maxdate  and d2.qisa_adi=@v";
                    SQLCom.Connection = SQLCon;
                    SQLCom.Parameters.Add("@dt", SqlDbType.DateTime).Value = MyINI[ 1 ].GetValue("Valyuta", "Date", "");
                    SQLCom.Parameters.Add("@v", SqlDbType.NVarChar).Value = Valyuta_ComboBox.Text;

                    SqlDataAdapter SQLAdap = new SqlDataAdapter();                    
                    SQLAdap.SelectCommand = SQLCom;
                    SQLAdap.SelectCommand.ExecuteNonQuery();
                    DataSetMainForm.VALYUTA.Clear();
                    SQLAdap.Fill(DataSetMainForm.VALYUTA);

                    DataRowView ReadKurs = (DataRowView)BindingContext[DataSetMainForm.VALYUTA].Current;
                    string s = ReadKurs["kurs"].ToString();

                    //ВЫЧИСЛЯЕМ
                    ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.Tables["Alish"].Columns["val_alish_qiymeti"].Expression = this.DataSetMainForm.ALISH.alish_qiymetiColumn.ColumnName + "/" + s;
                    ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.Tables["Alish"].Columns["val_xerc"].Expression = this.DataSetMainForm.ALISH.xercColumn.ColumnName + "/" + s;
                    ((Alish)this.MdiChildren[ 0 ]).AlishDataSet.Tables["Alish"].Columns["val_odenish"].Expression = this.DataSetMainForm.ALISH.odenishColumn.ColumnName + "/" + s;

                    //ИЗМЕНЯЕМ ФОРМАТ
                    ((Alish)this.MdiChildren[ 0 ]).Alish_Activated(((Alish)this.MdiChildren[ 0 ]), new EventArgs());
                    ((Alish)this.MdiChildren[ 0 ]).AlishBandedGridView.RefreshData();

                    SQLCon.Close();
                    SQLCon.Dispose();
                    SQLAdap.Dispose();
                    SQLCom.Dispose();

Удачи!

Спасибо, ЧУВАК!!!))))

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34006705
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСпасибо, ЧУВАК!!!))))

незачто!

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34007356
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WoRmS
Спасибо, ЧУВАК!!!))))

Вообще то пример не удачный, выполнен в "старом стиле" я бы сказал. Много дополнительного кода без которого вполне можно обойтись и не захламлять программу. Не в обиду автору, но для разроботчика на ADO.NET, в качестве наглядном пособия данный код не советовал бы использовать вообще.

Основной минус:
1) Полностью игнорируется механизм Binding'а, а там продумано много вкусностей.

Так что, будьте внимательнее. Вся необходимая информация есть в MSDN.
Некоторые примеры есть и на наших форумах.
Например, биндинг DataRowView:
http://www.sql.ru/forum/actualthread.aspx?tid=203957

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34007410
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВообще то пример не удачный, выполнен в "старом стиле" я бы сказал

и где здес старый метод? пможеш показать?


----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34007411
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоесть именно что ты имееш веду?

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

и что?

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
помогите разобраться!...
    #34007459
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ramin
и где здес старый метод? пможеш показать?

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

про мелочи не буду - их предостаточно.
Основной недостаток, которым кстати страдают многие начинающие программисты .NET, - это как игнорирование свойства DataBindings у контролов .NET., так и не знание дополнительных преимуществ получаемых при умелом использовании продвинутого механизма Binding.

При этом начинающий программист лишается следующей поддержки:
1) Formatting;
2) Parsing;
3) Error Handling;
4) Синхронизации данных между источником данных и UI;
5) Property Change Notification (INotifyPropertyChanged - NW 2.0, PropertyChanged - NW 1.0, 1.1 для пользовательских классов и IBindingList.ListChanged для коллекций.
6) Currency Management;
7) и т.д.

Отсутствием просвещения в этом вопросе также "грешат" некоторые книги, где приходится видеть "корявый" код наподобее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
txtOne.Text = row["bla-bla-bla"];
row["bla-bla-bla"] = someType.Parse(txtOne.Text);
row["bla-bla-bla"] = txtTwo.Text;
if (checkBox1.Checked) {
    row["bla-bla-bla"] = "Yes";
} else {
    row["bla-bla-bla"] = "No";
}
и т.д. и т.п.

Автору же топика, советую последовательно разобраться в этом вопросе, и стараться работать с источниками данных, а не с контролами отображающих эти данные. Идею типа Model-View-Controller еще никто не отменял, а наоборот в какой то мере реализацию MVC заботливо предоставили нам программисты из MS.
P.S. Не сказал бы что механизм Binding - ультрановый подход, появившийся только в .NET, но по крайней мере для .NET он является Best Practice .

P.S.S. Для начала более простой и достаточно корректный код, можно получить и при помощи мастера-дизайнера в Visual Studio.

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / помогите разобраться!...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]