Вводить реестр таблицы, связанный с c# в sql server

Я нуждаюсь в помощи! я работаю с наследством. Cliente:Persona. и нуждался в том, чтобы ввести с класса Клиент, где - методы (регистрировать, изменять, удалять, заносить в список). Мне нужно, чтобы он был введен в методе! идея, которая у меня есть, состоит в том, чтобы идентифицировать id человека, чтобы вводить клиент, и идентифицировать тип клиент.

public void Registrar()
    {
        string sql = string.Format("Insert into Persona (Nombre, ApPaterno,                ApMaterno, FechaNac, Documento, Direccion, Telefono, Sexo, Email) 
 values('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}')",      this.Nombre, this.ApPaterno, this.ApMaterno, this.FechaNac, this.Documento,   this.Direccion, this.Telefono, this.Sexo, this.Email);
        //("Insert into Cliente(Id, codigo, TipoCliente) values({0})",   this.ID, this.codigo, this.TipoCliente)

        Conexion.EjecutarComando(sql);
    } 

Моя база данных - следующая:

create table Persona(
Id int not null identity(1,1),
Nombre varchar(50) not null,
ApPaterno varchar(50),
ApMaterno varchar(50),
FechaNac date not null,
Documento varchar(20) not null,
Direccion varchar(50),
Telefono varchar(20),
Sexo varchar(20) not null,
Email varchar(50),
constraint pk_persona primary key(Id),
)

create table TipoCliente(
Id int identity(1,1) not null,
Nombre varchar(50) not null,
constraint pk_TipoCliente primary key(Id),
)

create table Cliente(
Id int not null,
codigo int not null,
TipoCliente int not null,
constraint pk_cliente primary key(Id),
constraint fk_persona_Cliente foreign key(Id)
references Persona(Id) on delete cascade on update cascade,
constraint fk_Cliente_TipoCliente foreign key(TipoCliente)
references TipoCliente(Id) on delete cascade on update cascade
)
1
задан 14.04.2016, 13:34
2 ответа

Первое, что он советовал бы, состоит в том, чтобы ты использовал параметры, объединять в string стоимость insert не рекомендуемо

Код был бы должен светить этой формы

public void Registrar()
{
    using (SqlConnection conn = new SqlConnection("connection string")) 
    { 

    string sql = @"Insert into Persona (Nombre, ApPaterno, ApMaterno, 
                    FechaNac, Documento, Direccion, Telefono, Sexo, Email) 
                values(@nombre, @ApPaterno, @ApMaterno, ...)"; 

        SqlCommand cmd = new SqlCommand(sql, conn); 
        cmd.Parameters.AddWithValue("@nombre", this.Nombre); 
        cmd.Parameters.AddWithValue("@ApPaterno", this.ApPaterno);
        cmd.Parameters.AddWithValue("@ApMaterno", this.ApMaterno);
        .
        .

        cmd.ExecuteNonQuery(); 
    }
} 

используй всегда параметров, чтобы распределять стоимость.

Из-за проблемы в наследстве анализирует эту статью

n-Layer - SchoolManager - Наследство и navegaciГіn связанных организаций (1/2)

Край, как я определяю пример используя Instructor, которые он получает в наследство от Persona тогда с метода Save () он называется первым, записав базового класса (или же он является лично) вводится и потом продолжаются инструктора. Когда человек вводит, ты получаешь Id, чтобы мочь связывать реестры между подмостками.

7
ответ дан 24.11.2019, 14:35

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

, Явись лично-> Клиент

Для этого то, что ты должен делать сначала, состоит в том, чтобы вводить реестр в таблице отец , в этом случае Явись лично, и потом с произведенным Id вводить реестр в таблице сын , который закончил бы тем, что был бы Клиентом. Этот deberГ, - чтобы быть порядком для того, чтобы ссылка Чужеземного Ключа функционировала и не случилась ошибка. В предыдущем ответе он показывает тебя, как делание insert с использованием параметров, ты был бы должен заставлять один регистрировать для Человека и одного для Клиента.

0
ответ дан 24.11.2019, 14:35

Теги

Похожие вопросы