Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataRelation 
V
    Опции темы
kizune
Дата 29.11.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 10.7.2007

Репутация: нет
Всего: 9



Привет всем
Код

            strCommand = "SELECT * FROM  investment";    
            SqlDataAdapter myCommand = new SqlDataAdapter(strCommand, conn);
            myCommand.TableMappings.Add("Table", "_Parent");
            DataSet ds = new DataSet();
            myCommand.Fill(ds);          
              

                strCommand1 = "SELECT * FROM instrument";
                SqlDataAdapter myCommand1 = new SqlDataAdapter(strCommand1, conn);
                myCommand1.TableMappings.Add("Table", "_Child");               
                myCommand1.Fill(ds);
                DataRelation dataRelation;
                DataColumn dataColumn1;
                DataColumn dataColumn2;
                dataColumn1 = ds.Tables["_Parent"].Columns[0];
                dataColumn2 = ds.Tables["_Child"].Columns[3];
                
                ds.Relations.Add(dataColumn1, dataColumn2);
                 DataViewManager dsview = ds.DefaultViewManager;
                 rprRates.DataSource = dsview;
                 rprRates.DataMember = "Parent";               
                 rprRates.DataBind();
           
                                
        }


на этой строке ( ds.Relations.Add(dataColumn1, dataColumn2);) вылетает ошибка
These columns don't currently have unique values.
в чем может быть дело?

Это сообщение отредактировал(а) kizune - 29.11.2007, 15:20
PM MAIL   Вверх
Experimenter
Дата 29.11.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 3
Всего: 17



kizune, ты и сам наверное перевел текст ошибки? выполняется условие?


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
kizune
Дата 29.11.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 10.7.2007

Репутация: нет
Всего: 9



Цитата

ты и сам наверное перевел 

сама перевела

но как ее разрешить?
PM MAIL   Вверх
thomas
Дата 29.11.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



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

Добавлено через 7 минут и 25 секунд
Почитай вот эту статью.

И все получиться.  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
kizune
Дата 29.11.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 10.7.2007

Репутация: нет
Всего: 9



спасибо, теперь ясно.
мои таблицы не валидные smile 
PM MAIL   Вверх
thomas
Дата 29.11.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



kizune, 
Почитайте этот курс  лекций.
О проектировании БД. Эта лекция про нормализацию.
Если будете работать с БД очень нужная информация. Потому как это основа.
Успехов.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
kizune
Дата 29.11.2007, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 10.7.2007

Репутация: нет
Всего: 9



большое спасибо,почитаю на досуге
PM MAIL   Вверх
Killerman
Дата 2.2.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



А зачем сначала создавать отношения в базе данных, а затем пересоздавать их в том же DataSet вручную заново? Нельзя просто перенести отношения из БД? 

И зачем вообще создавать отношения Парент-чайлд, если использую 1НФ и так понятно что в чайлде ключом будет ключ паррента + собственный ключ. и просто добавить фореинг кей в чайлд со ссылкой на парент в самой БД. 

П.С. Кто не понял о 1НФ, читайте http://www.mstu.edu.ru/education/materials...kov/ch_4_2.html


PM MAIL   Вверх
thomas
Дата 2.2.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



Killerman, 
Приветствую.
Цитата

А зачем сначала создавать отношения в базе данных, а затем пересоздавать их в том же DataSet вручную заново?  

Затем что, в созданном в "ручную" ДатаСете есть только таблицы. И связей между ними пока еще нет. Обьект relation надо создавать в "ручную" указывая по каким полям связывать таблицы.

Цитата

Нельзя просто перенести отношения из БД?

Можно. Но для этого надо использовать типизированный ДатаСет. Он создаеться в дизайнере. И является как бы копией БД в памяти, т.е. содержит не только данные, но и структуру БД.
В этом случае, даже если в базе не были созданы отношения между таблицами, их можно создать в дизайнере. 

В случае же не типизированного ДатаСет, все создается "ручками", т.е. пишеться соответствующий код.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Killerman
Дата 4.2.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Ясно.
Но вот не могу понять. Если создавать датасет, коннекшин и датаадаптер вручную, то как потом модифицировать Датасет и вместе с ним тейбладаптер в визарде? получается уже никак?
PM MAIL   Вверх
thomas
Дата 4.2.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



Killerman, 
Приветствую.
Цитата

Если создавать датасет, коннекшин и датаадаптер вручную, то как потом модифицировать Датасет и вместе с ним тейбладаптер в визарде?

Если создавать датасет, обьект соединения и датаадаптер "в ручную" то никакого таблеадаптера нет.
Таблеадаптер получается если создавать типизированный датасет в мастере. Тогда для каждой таблицы помещенный в датасет студия создаст свой таблеадаптер.
И только типизированный датасет можно увидеть и отредактировать в дизайнере.
Датасет который создается в коде во время выполнения в дизайнере ни когда не увидите. И все действия с ним (его обьектами) выполняются только через код.



--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Killerman
Дата 4.2.2008, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Привет thomas.
А в чем преимущество создания датасета вручную? 
Ведь визарда для него нет, и в дальнейшем могут появиться трудности модификации (если база большая, то можно упустить многие моменты организации связей и т.д.).
PM MAIL   Вверх
mr.DUDA
Дата 4.2.2008, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



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

Кроме того, наиболее важным преимуществом работы с типизированными датасетами служит то, что студия автоматически генерирует исходный код для работы с таблицами и строками, так что можно обратиться к конкретному полю таблицы например так: dataSet.Customers[1].Name = "abcd"


--------------------
user posted image
PM MAIL WWW   Вверх
thomas
Дата 5.2.2008, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



Killerman, 
Приветствую.
Цитата

в дальнейшем могут появиться трудности модификации

По моему, как раз наоборот. При использовании типизированного ДатаСет, после его создания в режиме дизайнера, написания всего приложения и создания setup, что-то там в ДатаСет изменить уже не получиться.
А при использовании ДатаСет, созданного  "в ручную" и зашитого в одну из библиотек, в последствии можно в программе заменить эту библиотеку на новую и усё.

Еще момент когда сам пишешь код для команд, датаАдаптера и всего что связано с ДатаСет и данными, то понимаешь что ты делаешь и как это все у тебя работает.
При работе с типизированным датаСет, все эти действия выполняет студия. Причем за кулисами. И многие, особенно начинающие программисты, очень часто имеют проблемы при создании приложений только из-за того, что не занают: а как же это все работает?

Дизайнер это хорошо, это быстро, но не гибко. Сам ты можешь замутить любую логику. Да нужно потратить время на создание модели и написание кода, но результат будет существеннее.

Я не призываю отказываться от дизайнера и делать все исключительно через код, но по моему лучше сначала научиться все делать без дизайнера, а потом уже учиться работать с дизайнером. В любом случае ЗНАНИЕ - Сила!!!

Это сообщение отредактировал(а) thomas - 5.2.2008, 00:04


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Killerman
Дата 5.2.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



А мне было только начал нравится дизайнер.  8-(
Но просмотрев сгенерированный дизайнером код на простенькую БД:
Код

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")]
    [Serializable()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.ComponentModel.ToolboxItem(true)]
    [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")]
    [System.Xml.Serialization.XmlRootAttribute("AddressBookDataSet")]
    [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")]
    public partial class AddressBookDataSet : System.Data.DataSet {
        
        private AddressesDataTable tableAddresses;
        
        private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        public AddressBookDataSet() {
            this.BeginInit();
            this.InitClass();
            System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged);
            base.Tables.CollectionChanged += schemaChangedHandler;
            base.Relations.CollectionChanged += schemaChangedHandler;
            this.EndInit();
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        protected AddressBookDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : 
                base(info, context, false) {
            if ((this.IsBinarySerialized(info, context) == true)) {
                this.InitVars(false);
                System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged);
                this.Tables.CollectionChanged += schemaChangedHandler1;
                this.Relations.CollectionChanged += schemaChangedHandler1;
                return;
            }
            string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string))));
            if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) {
                System.Data.DataSet ds = new System.Data.DataSet();
                ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema)));
                if ((ds.Tables["Addresses"] != null)) {
                    base.Tables.Add(new AddressesDataTable(ds.Tables["Addresses"]));
                }
                this.DataSetName = ds.DataSetName;
                this.Prefix = ds.Prefix;
                this.Namespace = ds.Namespace;
                this.Locale = ds.Locale;
                this.CaseSensitive = ds.CaseSensitive;
                this.EnforceConstraints = ds.EnforceConstraints;
                this.Merge(ds, false, System.Data.MissingSchemaAction.Add);
                this.InitVars();
            }
            else {
                this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema)));
            }
            this.GetSerializationData(info, context);
            System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged);
            base.Tables.CollectionChanged += schemaChangedHandler;
            this.Relations.CollectionChanged += schemaChangedHandler;
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.ComponentModel.Browsable(false)]
        [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)]
        public AddressesDataTable Addresses {
            get {
                return this.tableAddresses;
            }
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.ComponentModel.BrowsableAttribute(true)]
        [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Visible)]
        public override System.Data.SchemaSerializationMode SchemaSerializationMode {
            get {
                return this._schemaSerializationMode;
            }
            set {
                this._schemaSerializationMode = value;
            }
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
        public new System.Data.DataTableCollection Tables {
            get {
                return base.Tables;
            }
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]
        public new System.Data.DataRelationCollection Relations {
            get {
                return base.Relations;
            }
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        protected override void InitializeDerivedDataSet() {
            this.BeginInit();
            this.InitClass();
            this.EndInit();
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        public override System.Data.DataSet Clone() {
            AddressBookDataSet cln = ((AddressBookDataSet)(base.Clone()));
            cln.InitVars();
            cln.SchemaSerializationMode = this.SchemaSerializationMode;
            return cln;
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        protected override bool ShouldSerializeTables() {
            return false;
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        protected override bool ShouldSerializeRelations() {
            return false;
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        protected override void ReadXmlSerializable(System.Xml.XmlReader reader) {
            if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) {
                this.Reset();
                System.Data.DataSet ds = new System.Data.DataSet();
                ds.ReadXml(reader);
                if ((ds.Tables["Addresses"] != null)) {
                    base.Tables.Add(new AddressesDataTable(ds.Tables["Addresses"]));
                }
                this.DataSetName = ds.DataSetName;
                this.Prefix = ds.Prefix;
                this.Namespace = ds.Namespace;
                this.Locale = ds.Locale;
                this.CaseSensitive = ds.CaseSensitive;
                this.EnforceConstraints = ds.EnforceConstraints;
                this.Merge(ds, false, System.Data.MissingSchemaAction.Add);
                this.InitVars();
            }
            else {
                this.ReadXml(reader);
                this.InitVars();
            }
 }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() {
            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null));
            stream.Position = 0;
            return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null);
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        internal void InitVars() {
            this.InitVars(true);
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        internal void InitVars(bool initTable) {
            this.tableAddresses = ((AddressesDataTable)(base.Tables["Addresses"]));
            if ((initTable == true)) {
                if ((this.tableAddresses != null)) {
                    this.tableAddresses.InitVars();
                }
            }
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        private void InitClass() {
            this.DataSetName = "AddressBookDataSet";
            this.Prefix = "";
            this.Namespace = "http://tempuri.org/AddressBookDataSet.xsd";
            this.EnforceConstraints = true;
            this.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
            this.tableAddresses = new AddressesDataTable();
            base.Tables.Add(this.tableAddresses);
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        private bool ShouldSerializeAddresses() {
            return false;
...................................
...................................
...................................

System.Data.SqlClient.SqlParameter("@PhoneNumber", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "PhoneNumber", System.Data.DataRowVersion.Current, false, null, "", "", ""));
            this._adapter.UpdateCommand = new System.Data.SqlClient.SqlCommand();
            this._adapter.UpdateCommand.Connection = this.Connection;
            this._adapter.UpdateCommand.CommandText = @"UPDATE [dbo].[Addresses] SET [FirstName] = @FirstName, [LastName] = @LastName, [Email] = @Email, [PhoneNumber] = @PhoneNumber WHERE (([AddressID] = @Original_AddressID) AND ([FirstName] = @Original_FirstName) AND ([LastName] = @Original_LastName) AND ([Email] = @Original_Email) AND ([PhoneNumber] = @Original_PhoneNumber));
SELECT AddressID, FirstName, LastName, Email, PhoneNumber FROM Addresses WHERE (AddressID = @AddressID)";
            this._adapter.UpdateCommand.CommandType = System.Data.CommandType.Text;
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Current, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Current, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Email", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "Email", System.Data.DataRowVersion.Current, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@PhoneNumber", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "PhoneNumber", System.Data.DataRowVersion.Current, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_AddressID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AddressID", System.Data.DataRowVersion.Original, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Original, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_Email", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "Email", System.Data.DataRowVersion.Original, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_PhoneNumber", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "PhoneNumber", System.Data.DataRowVersion.Original, false, null, "", "", ""));
            this._adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@AddressID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, 0, 0, "AddressID", System.Data.DataRowVersion.Current, false, null, "", "", ""));
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        private void InitConnection() {
            this._connection = new System.Data.SqlClient.SqlConnection();
            this._connection.ConnectionString = global::adrbook.Properties.Settings.Default.AddressBookConnectionString;
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        private void InitCommandCollection() {
            this._commandCollection = new System.Data.SqlClient.SqlCommand[2];
            this._commandCollection[0] = new System.Data.SqlClient.SqlCommand();
            this._commandCollection[0].Connection = this.Connection;
            this._commandCollection[0].CommandText = "SELECT AddressID, FirstName, LastName, Email, PhoneNumber FROM dbo.Addresses";
            this._commandCollection[0].CommandType = System.Data.CommandType.Text;
            this._commandCollection[1] = new System.Data.SqlClient.SqlCommand();
            this._commandCollection[1].Connection = this.Connection;
            this._commandCollection[1].CommandText = "SELECT AddressID, FirstName, LastName, Email, PhoneNumber FROM dbo.Addresses\r\nWHE" +
                "RE LastName = @lastName";
            this._commandCollection[1].CommandType = System.Data.CommandType.Text;
            this._commandCollection[1].Parameters.Add(new System.Data.SqlClient.SqlParameter("@lastName", System.Data.SqlDbType.VarChar, 30, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Current, false, null, "", "", ""));
        }
..............................        
..............................
..............................       

            try {
                int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery();
                return returnValue;
            }
            finally {
                if ((previousConnectionState == System.Data.ConnectionState.Closed)) {
                    this.Adapter.InsertCommand.Connection.Close();
                }
            }
        }
        
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
        public virtual int Update(string FirstName, string LastName, string Email, string PhoneNumber, int Original_AddressID, string Original_FirstName, string Original_LastName, string Original_Email, string Original_PhoneNumber, int AddressID) {
            if ((FirstName == null)) {
                throw new System.ArgumentNullException("FirstName");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(FirstName));
            }
            if ((LastName == null)) {
                throw new System.ArgumentNullException("LastName");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(LastName));
            }
            if ((Email == null)) {
                throw new System.ArgumentNullException("Email");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(Email));
            }
            if ((PhoneNumber == null)) {
                throw new System.ArgumentNullException("PhoneNumber");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(PhoneNumber));
            }
            this.Adapter.UpdateCommand.Parameters[4].Value = ((int)(Original_AddressID));
            if ((Original_FirstName == null)) {
                throw new System.ArgumentNullException("Original_FirstName");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Original_FirstName));
            }
            if ((Original_LastName == null)) {
                throw new System.ArgumentNullException("Original_LastName");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_LastName));
            }
            if ((Original_Email == null)) {
                throw new System.ArgumentNullException("Original_Email");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(Original_Email));
            }
            if ((Original_PhoneNumber == null)) {
                throw new System.ArgumentNullException("Original_PhoneNumber");
            }
            else {
                this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_PhoneNumber));
            }
            this.Adapter.UpdateCommand.Parameters[9].Value = ((int)(AddressID));
            System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State;
            if (((this.Adapter.UpdateCommand.Connection.State & System.Data.ConnectionState.Open) 
                        != System.Data.ConnectionState.Open)) {
                this.Adapter.UpdateCommand.Connection.Open();
            }
            try {
                int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery();
                return returnValue;
            }
            finally {
                if ((previousConnectionState == System.Data.ConnectionState.Closed)) {
                    this.Adapter.UpdateCommand.Connection.Close();
                }
            }
        }
    }
}

 (500 строк кода  smile  smile  ), я понял что без поллитры не разобраться. 

По моему чем мощнее становится ПО по разработке и чем больше скрывается реализация, тем все меньше от программиста что либо зависит.



Это сообщение отредактировал(а) Killerman - 5.2.2008, 13:05
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.