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

и ещё ...

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

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

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

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
21.09.2006, 08:20
    #34001751
WoRmS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться!...
Скиньте пожайлуста ссылку, где можно прочитать, как удалять записи, редактировать и добавлять их!
Я был бы очень признателен!
Или скиньте мне на почту, плизз....!)
...
Рейтинг: 0 / 0
21.09.2006, 17:15
    #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
22.09.2006, 15:46
    #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
22.09.2006, 16:00
    #34006705
Ramin Hashimzade
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться!...
авторСпасибо, ЧУВАК!!!))))

незачто!

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
22.09.2006, 20:24
    #34007356
Sa
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
22.09.2006, 21:12
    #34007410
Ramin Hashimzade
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться!...
авторВообще то пример не удачный, выполнен в "старом стиле" я бы сказал

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


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

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

и что?

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
22.09.2006, 22:52
    #34007459
Sa
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
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / помогите разобраться!... / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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