Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Ошибка чтения из БД после добавления связей между таблицами (MVC)

Есть БД из которой я беру данные. Сначала были все таблички по отдельности и всё выводилось нормально. После добавления связей между таблицами выскакивает исключение и данные не выводятся. На фото видно что исключение появляется когда доходит до foreach (item in Model).
Модель одной из таблиц имеет вид
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public partial class Vocabulary
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Vocabulary()
        {
            this.WordsForTest = new HashSet<WordsForTest>();
        }
    
        public int Id { get; set; }
        public string Title { get; set; }
        public string PicturePath { get; set; }
        public Nullable<int> WordsCount { get; set; }
        public Nullable<bool> LikeGroup { get; set; }
        public Nullable<int> GroupID { get; set; }
        public int UserId { get; set; }
    
        public virtual User User { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<WordsForTest> WordsForTest { get; set; }
    }
Из других таблицах ситуация аналогичная
Ответ: Заработало, спасибо

Добавлено через 9 минут
А почему тогда другие View не ругаются? Я так пишу во всех View
Вот например Vocabulary
C#
1
2
3
4
5
        public ActionResult Vocabulary()
        {
            var item = db.Vocabulary;
            return View(item);
        }
А во View написано так
C#
1
@model IEnumerable <ASP.NET_MVC5_Bootstrap_3._3._4_LESS1.Models.Vocabulary>
И ничего не ругается

Добавлено через 6 минут
Хотя все понятно) Ienumerable Это и есть коллекция
Вопрос: Ошибка времени выполнения: Индекс находился вне границ массива.

Пишет, что: "Ошибка времени выполнения: Индекс находился вне границ массива."
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
program n_5; 
var k, i: integer; 
a: array [1..50] of integer; 
begin 
randomize; 
for i:=150 to 200 do a[i]:= random(50); 
for i:=150 to 200 do writeln ('a[',i,']=',a[i]); 
k:=0; 
for i:=1 to 50 do 
if a[i] >= 170 then k:=k+1; 
write('k=',k) 
end.
Ответ:
Pascal
1
2
3
a: array [1..50] 
for i:=150 to 200 do
for i:=150 to 200 do
Вопрос: Ошибка в коде добавления заказа

Здравствуйте. Такая проблема. На сайте есть форма подачи заявки на обучение. Перед тем, как заявка будет принята, необходимо проверить, может этот пользователь уже делал заказ. id пользователя берется из сессии. Заказ добавляется в любом случае
PHP
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
<?php
  //Добавление заявки
     $id_specialists = $UserID;
     $id_discipline = $_POST['id_discipline'];
  if($_POST['add_order'])
    {
        
        
        
    $zapros = mysql_query ("SELECT id_specialists FROM order WHERE id_specialists ='$UserID' ");
    if (empty($zapros))
        {
            $insert = mysql_query("INSERT INTO `order`(`id_specialists`, `id_discipline`) VALUES ('$id_specialists', '$id_discipline')");
      
            if(!$insert){return exit('Ошибка добавления заказа');}
     //Если данные добавились успешно
     echo "Заказ добавлен";
        }
     
     //Если данные добавились успешно
     else {return exit('Вы уже подали заявку на данный курс');}
     
     
     
     
}
Ответ:
Сообщение от srolisence
PHP
1
2
if ($num_rows == '0'){$insert = mysql_query("INSERT INTO `order`(`id_specialists`, `id_discipline`) VALUES ('$id_specialists', '$id_discipline')"); 
if(!$insert){return exit('Ошибка добавления заказа');} 
так на будущее - num_rows всегда int, т.е. $num_rows === 0
а проверку можно так записать:
PHP
1
2
if (!mysql_query("INSERT INTO `order`(`id_specialists`, `id_discipline`) VALUES ('$id_specialists', '$id_discipline')"))
    {echo'Ошибка добавления заказа';exit;}
Вопрос: TimeSpan в time(7) - Ошибка добавления

Собственно не может добавить в базу данных тип данных TimeSpan
Приведу немного кода
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
USE [DB_POST_OFFICE]
GO
/****** Object:  StoredProcedure [dbo].[addSchedule]    Script Date: 26.11.2015 20:22:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[addSchedule] 
    @FK_Person INT, 
    @start_time TIME(7),
    @end_time TIME(7),
    @isActive bit
AS 
 
BEGIN 
    SET NOCOUNT ON;
    DECLARE @id INT;
    INSERT INTO Schedule(FK_Person,start_time,end_time,isActive) VALUES(@FK_Person,@start_time,@end_time,@isActive);
    SET @id = scope_identity();
    RETURN @id;
END
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        public int addSchedule(object FK_Person, string start_time, string end_time, bool? isActive)
        {
            using (SqlCommand cmd = connection.CreateCommand())
            {
                
                TimeSpan tp = TimeSpan.ParseExact(start_time, "hh\\.mm", null);
                MessageBox.Show(tp.ToString());
                cmd.CommandText = "addSchedule";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@FK_Person", int.Parse(FK_Person.ToString()));
                cmd.Parameters.AddWithValue("@start_name", tp);
                cmd.Parameters.AddWithValue("@end_time", tp);
                cmd.Parameters.AddWithValue("@isActive", isActive);
                var returnParameter = cmd.Parameters.Add("@id", SqlDbType.Int);
                returnParameter.Direction = ParameterDirection.ReturnValue;
                cmd.ExecuteNonQuery();
                int result = (int)returnParameter.Value;
                return 1;
            }
        }
Вылетает исключение
Дополнительные сведения: Входная строка имела неверный формат.
Тип данных на сервере - time.
Строка на вход такого вида: 09.00 [часы/минуты]
Благополучно парсится так
C#
1
                TimeSpan tp = TimeSpan.ParseExact(start_time, "hh\\.mm", null);
В итоге ошибка..не знаю в какую сторону копать(
Ответ: Ошибка найдена. Проблема как казалась изначально таилась не в TimeSpan а в
C#
1
db.addSchedule(schedule_person_data_ComboBox.SelectedItem,schedule_start_time_TextBox.Text, schedule_end_time_TextBox.Text,schedule_isActive_CheckBox.IsChecked);
вместо SelectedItem нужно было юзать SelectedValue
Ещё и отладчик с толку сбивает..своими не всегда понятными сообщениями.
Вопрос: Ошибки при добавлении записей в БД

Доброго времени суток, в моем проекте возникла ошибка добавления записи в бд. БД на Access, я связываю с делфи при помощи ADO conecthion, связывается и выводит без проблем. В проекте три таблицы Родители - Дети - Группы (схема связи рис 1), добавление записи произвожу сразу в две таблицы Дети и Родители(листинг кода добавления ниже). При таком варианте связи выходит ошибка (рис 2), учитывая, что при добавлении, в таблице группа имеются несколько записей и добавляя нового ребенка я ссылаюсь на код уже добавленной группы. Когда я изменяю схему связи (рис 3), и пробую добавить запись то возникает следующая ошибка (рис 4). Прошу помощи знатоков. Заранее спасибо. P.S. Также были попытки добавить запись при помощи DBNavigator, но результат тот же.
Delphi
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
39
40
41
42
43
44
45
46
47
48
 TForm2.Button1Click(Sender: TObject);
begin
//try
if (Trim(Edit1.Text)='') or (Trim(Edit2.Text)='') or (Trim(Edit3.Text)='')
or (Trim(Edit4.Text)='') or (Trim(Edit5.Text)='') or (Trim(Edit6.Text)='')
or (Trim(Edit7.Text)='') or (Trim(Edit8.Text)='') or (Trim(Edit9.Text)='')
or (Trim(Edit11.Text)='') or (Trim(Edit12.Text)='') or (Trim(Edit13.Text)='')
or (Trim(Edit14.Text)='') or (Trim(Edit15.Text)='')
then
ShowMessage('Заполните пустые поля')
else begin
form1.ADOTable1.Insert;
form1.ADOTable1.FieldByName('Фамилия').AsString:=Edit1.Text;
form1.ADOTable1.FieldByName('Имя').AsString:=Edit2.Text;
form1.ADOTable1.FieldByName('Отчество').AsString:=Edit3.Text;
form1.ADOTable1.FieldByName('Дата рождения').AsDatetime:=StrToDate(Edit4.Text);
form1.ADOTable1.FieldByName('Школа').AsInteger:=StrToInt(Edit5.Text);
form1.ADOTable1.FieldByName('Класс').AsInteger:=StrToInt(Edit6.Text);
form1.ADOTable1.FieldByName('Документ удостоверяющий личность').AsString:=Edit7.Text;
form1.ADOTable1.FieldByName('Код родителя').AsInteger:=StrToInt(Edit6.Text);
form1.ADOTable1.FieldByName('Код группы').AsInteger:=StrToInt(Edit7.Text);
form3.ADOTable1.Insert;
form3.ADOTable1.FieldByName('Код родителя').AsInteger:=StrToInt(Edit6.Text);
form3.ADOTable1.FieldByName('Фамилия').AsString:=Edit11.Text;
form3.ADOTable1.FieldByName('Имя').AsString:=Edit12.Text;
form3.ADOTable1.FieldByName('Отчество').AsString:=Edit13.Text;
form3.ADOTable1.FieldByName('Адрес').AsString:=Edit14.Text;
form3.ADOTable1.FieldByName('Телефон').AsString:=Edit15.Text;
Edit1.clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
Edit8.Clear;
Edit9.Clear;
Edit11.clear;
Edit12.Clear;
Edit13.Clear;
Edit14.Clear;
Edit15.Clear;
Form1.ADOtable1.Active:=true;
form1.ADOtable1.Post;
Form3.ADOtable1.Active:=true;
form3.ADOtable1.Post;
end;
end;
Ответ:
Сообщение от Ирина Ирина
Как избавиться от данных ошибок
нужно правильно внести данные в таблицу - в вашем случае что бы записи были связаны

Сообщение от Ирина Ирина
нормально добавить записи в БД.
вам обязательно ограничение на уровне БД?
ведь можно не проставлять связи в аксессе, а просто учесть их при разработке запросов
Вопрос: Ошибка добавления объекта в бд

Здравствуйте. Работаю с 10 сущностями в бд через jpa. C 9 хорошо, а вот Client, при попытки добавления в базу, кидает исключения. Что с ним может быть не так?
Java
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
@Entity
public class Client {
    @Id
    @Column(name = "id")
    private int id;
    @Basic
    @Column(name = "name")
    private String name;
    @Basic
    @Column(name = "secondName")
    private String secondName;
    @Basic
    @Column(name = "birthdayData")
    private String birthdayData;
    @Basic
    @Column(name = "passport")
    private String passport;
    @Basic
    @Column(name = "adress")
    private String adress;
    @Basic
    @Column(name = "e-mail")
    private String eMail;
    @Basic
    @Column(name = "password")
    private String password;
 
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
 
    public String getSecondName() {
        return secondName;
    }
 
    public void setSecondName(String secondName) {
        this.secondName = secondName;
    }
 
 
    public String getBirthdayData() {
        return birthdayData;
    }
 
    public void setBirthdayData(String birthdayData) {
        this.birthdayData = birthdayData;
    }
 
 
    public String getPassport() {
        return passport;
    }
 
    public void setPassport(String passport) {
        this.passport = passport;
    }
 
 
    public String getAdress() {
        return adress;
    }
 
    public void setAdress(String adress) {
        this.adress = adress;
    }
 
 
    public String geteMail() {
        return eMail;
    }
 
    public void seteMail(String eMail) {
        this.eMail = eMail;
    }
 
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public Client(int id, String name, String secondName, String birthdayData,
                  String passport, String adress, String eMail, String password) {
        this.id = id;
        this.name = name;
        this.secondName = secondName;
        this.birthdayData = birthdayData;
        this.passport = passport;
        this.adress = adress;
        this.eMail = eMail;
        this.password = password;
    }
 
    public Client() {
    }
 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
 
        Client client = (Client) o;
 
        if (id != client.id) return false;
        if (name != null ? !name.equals(client.name) : client.name != null) return false;
        if (secondName != null ? !secondName.equals(client.secondName) : client.secondName != null) return false;
        if (birthdayData != null ? !birthdayData.equals(client.birthdayData) : client.birthdayData != null)
            return false;
        if (passport != null ? !passport.equals(client.passport) : client.passport != null) return false;
        if (adress != null ? !adress.equals(client.adress) : client.adress != null) return false;
        if (eMail != null ? !eMail.equals(client.eMail) : client.eMail != null) return false;
        if (password != null ? !password.equals(client.password) : client.password != null) return false;
 
        return true;
    }
 
    @Override
    public int hashCode() {
        int result = id;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (secondName != null ? secondName.hashCode() : 0);
        result = 31 * result + (birthdayData != null ? birthdayData.hashCode() : 0);
        result = 31 * result + (passport != null ? passport.hashCode() : 0);
        result = 31 * result + (adress != null ? adress.hashCode() : 0);
        result = 31 * result + (eMail != null ? eMail.hashCode() : 0);
        result = 31 * result + (password != null ? password.hashCode() : 0);
        return result;
    }
}
Добавление его

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class ClientDAO {
    public static void main(String[] args) {
        ClientDAO clientDAO = new ClientDAO();
        clientDAO.addClient(1, "Ivan", "Ivanov", "8.3.1996", "8765456", "SPB", "a@b.com", "2345");
    }
 
    public void addClient(int id, String name, String secondName,
                          String birthdayData, String passport,
                          String adress, String eMail,
                          String password) {
        Client client = new Client(id, name, secondName, birthdayData,
                passport, adress, eMail, password);
 
        MainDAO.addEntetyToBase(client);
    }
}
Класс добавления

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MainDAO {
    private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("operator");
    private static EntityManager em = emf.createEntityManager();
 
    static public void addEntetyToBase(Object obj) {
        try {
            em.getTransaction().begin();
            em.persist(obj);
            em.getTransaction().commit();
            System.out.println(obj + " added");
        } catch (PersistenceException e) {
            e.printStackTrace();
            System.out.println("Fail");
        } finally {
            em.close();
            emf.close();
        }
    }
}
Исключения

Кликните здесь для просмотра всего текста
Java
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
ERROR: HHH000346: Error during managed flush [org.hibernate.exception.SQLGrammarException: could not execute statement]
javax.persistence.RollbackException: Error while committing the transaction
    at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:75)
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:71)
    at manipulating.MainDAO.addEntetyToBase(MainDAO.java:22)
    at manipulating.ClientDAO.addClient(ClientDAO.java:27)
    at manipulating.ClientDAO.main(ClientDAO.java:18)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147)
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
    at org.hibernate.internal.ExceptionConverterImpl.convertCommitException(ExceptionConverterImpl.java:56)
    ... 9 more
Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement
    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207)
    at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2934)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3434)
    at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:89)
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:582)
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:456)
    at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
    at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1405)
    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:475)
    at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3168)
    at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2382)
    at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467)
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146)
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38)
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:220)
    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68)
    ... 8 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-mail, name, passport, password, secondName, id) values (null, null, null, null,' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
    at com.mysql.jdbc.Util.getInstance(Util.java:387)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:942)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2526)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2673)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
    at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204)
    ... 25 more
Aug 21, 2016 10:16:57 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop
INFO: HHH10001008: Cleaning up connection pool [jdbc:mysql://localhost:3306/operator]
Ответ: neske, Крайне признателен. Спасибо!
Вопрос: Asp.Net Identity и ошибка "Тип сущности не входит в модель для текущего контекста"

Здравствуйте

Есть проблема. Юзаю Asp.Net Identity. когда подключен к локальной БД, всьо ОК. но когда подлючаюсь к базе на сервере удальоном возникаетпроблема.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
 
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
 
                    //Дополнительные сведения о том, как включить подтверждение учетной записи и сброс пароля, см.по адресу: [url]http://go.microsoft.com/fwlink/?LinkID=320771[/url]
                    //Отправка сообщения электронной почты с этой ссылкой
                     string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(user.Id, "Подтверждение учетной записи", "Подтвердите вашу учетную запись, щелкнув <a href="" + callbackUrl + "">здесь</a>");
 
                    return RedirectToAction("Index", "Home");
            }
            AddErrors(result);
        }
C#
1
2
3
4
5
6
7
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("B2BEntities", throwIfV1Schema:false)
        {
 
        }
Ошибка сервера в приложении '/'.

Тип сущности ApplicationUser не входит в модель для текущего контекста.

Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.InvalidOperationException: Тип сущности ApplicationUser не входит в модель для текущего контекста.

Ошибка источника:


Строка 154:
Строка 155: var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
Строка 156: var result = await UserManager.CreateAsync(user, model.Password);
Строка 157: if (result.Succeeded)
Строка 158: {
Ответ: makarchuk, На удаленном сервере создайте новую чистую базу, создайте миграцию, и залейте в БД
Вопрос: Ошибка при сохранении сущности

Всем привет! Лезет ошибка

Hibernate: insert into updates (category_id, comment, date, post_id, project_id, type, user_id) values (?, ?, ?, ?, ?, ?, ?)
2017-07-27 16:51:56.342 WARN 5464 --- [cTaskExecutor-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 23502
2017-07-27 16:51:56.342 ERROR 5464 --- [cTaskExecutor-1] o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: null value in column "post_id" violates not-null constraint
Подробности: Failing row contains (17600, 307, 1, null, 658, 1501163516332, 1023, 0).
2017-07-27 16:51:56.347 ERROR 5464 --- [cTaskExecutor-1] .a.i.SimpleAsyncUncaughtExceptionHandler : Unexpected error occurred invoking async method 'public void ru.ccsss.services.UpdateService.createUpdate(ru.ccsss.entities.Update,java.util.Collection)'.

или так

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [post_id]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement

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

Добавлено через 24 минуты
разобрался...я олень
Ответ:
Сообщение от xoraxax
что не понятно?
да было понятно, я как лошара не мог в бд посмотреть сразу, а посмотрел что в энтитии увидел что такм на это поле нет ограничений и поверил, а оказалось всё не так....
Вопрос: В чем ошибка при создании связи с БД

Не могу понять в чем ошибка. Написала связь между формой регистрации с БД (phpMyAdmin). в БД таблица называется users. Пользователь в локальном сервере denver: root без пароля.
вот некоторые коды:
db.php
Код PHP
1
2
3
4
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db(mybase);
?>
registr.php
Код PHP
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
39
40
41
<?php
error_reporting(0);
{
    $login = ($_POST ['login']);
    $password = ($_POST ['password']);
    $email = ($_POST ['email']);
    $name = ($_POST ['name']);
    $lastname = ($_POST ['lastname']);
    $patronymic = ($_POST ['patronymic']);
    $years = ($_POST ['years']);
    $address = ($_POST ['address']);
    $phone = ($_POST ['phone']);
    
    if ($login =="" || $password == "" || $email=="" || $name=="" || $lastname =="" || $patrinymic == "" || $years == "" || $address == "" || $phone =="")
    {
        die ("Вы не заполнили поля!");
    }
    include ("db.php");
    $res=mysql_query("SELECT 'users' FROM 'login' WHERE 'password' = 'password'");
    $data = mysql_fetch_array($res);
    if (!empty($data['id']))
    {
        die (" Такой логин уже зарегистрирован!");
    }
    if (strlen($password)<5)
    {
        die (" Пароль слишком короткий ");
        $query = "INSERT_INTO 'users' ('login', 'password', 'email', 'name', 'lastname', 'patronymic', 'years', 'address', 'phone') VALUES ('$login', '$password', '$email', '$name', '$lastname', '$patrinymic', '$years', '$address', '$phone')";
    }
    result=mysql_query($query);
    if ($result == true)
    {
        die ("Вы зарегистрировались!");
    }
    else
    {
        echo "Error". mysql_error();
    }
}
 
?>
registration.html
Код HTML5
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Страница регистрации</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
    <div id="logo">
        <h1><a href="#">Психологические тесты!</a></h1>
    </div>
    <div id="topmenu">
        <ul>
            <li class="first"><a href="index.html">Главная</a></li>
            <li><a href="vxod.html">Вход</a></li>
            <li><a href="registration.html">Регистрация</a></li>
        </ul>
    </div>
</div>
<div id="header2">
    <div id="menu">
        <ul>
            <li class="first"><a href="index.html">Главная</a></li>
            <li><a href="test.html">Прохождение тестирования</a></li>
            <li><a href="sozd.html">Создание тестирования</a></li>
        </ul>
    </div>
    <div id="splash"><a href="#"><img src="images/img04.jpg" alt="" width="560" height="200" /></a></div>
</div>
<hr />
<div id="page">
    <div id="content">
        <div>
            <h2>Регистрация пользователя!</h2>
            <form action="registr.php" method="post">
            <table>
            <tr>
                <td><b>Логин:</b><font color="red">*</font>:</td>
                <td><input type="text" size="40" name="login"></td>
            </tr>
            <tr>
                <td><b>Пароль:</b><font color="red">*</font>:</td>
                <td><input type="password" size="40" maxlength="20" name="password"></td>
            </tr>
            <tr>
                <td><b>E-mail:</b><font color="red">*</font>:</td>
                <td><input type="text" size="40" name="email"></td>
            </tr>
            <tr>
                <td><b>Имя:</b></td>
                <td><input type="text" size="40" name="name"></td>
            </tr>
            <tr>
                <td><b>Фамилия:</b></td>
                <td><input type="text" size="40" name="lastname"></td>
            </tr>
            <tr> 
                <td><b>Отчество:</b></td>
                <td><input type="text" size="40" name="patronymic"></td>
            </tr>
            <tr>
                <td><b>Возраст:</b></td>
                <td><input type="text" size="40" name="years"></td>
            </tr>
            <tr>
                <td><b>Адрес проживания:</b></td>
                <td><input type="text" size="40" name="address"></td>
            </tr>
            <tr>
                <td><b>Номер телефона:</b></td>
                <td><input type="text" size="40" name="phone"></td>
            </tr>
            <tr>
                <td></td>
                <td colspan="2"><input type="submit" value="Зарегистроваться" name="submit">
                </td>
            </tr>
            </table>
            </form>
            <b><br>Поля со значком <font color="red">*</font> обязательны для заполнения</b>
        </div>
    </div>
    <div style="clear: both;">&nbsp;</div>
</div>
<hr />
<div id="footer-wrapper">
    <div id="footer">
        <p id="legal">Copyright &copy; 2015 Transition. All Rights Reserved<br />
        </p>
    </div>
</div>
</body>
</html>
Ответ: я это делала по видео уроку, возможно вы правы, там и ошибка. идея была в том, что 1) если человек-пользователь при регистрации не заполнил какую-либо строчку, то выводилось сообщение: "Поля не заполнены"; 2)проверка логина(такой логин существует уже или нет в БД); 3) проверка пароля на безопасность, если пароль <5, то выводилось: "Пароль слишком короткий"; 4) после успешного занесения в БД данных пользователя, выводилось: "Вы успешно зарегистрированы".
Вопрос: Ошибка при связи hibernate с базой

Доброго времени суток всем!

Не судите строго: в Hibernate я начинающий.
Пытаюсь сделать простейшую программу и получаю исключение:

Initial SessionFactory creation failed.org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect

.....

Caused by: java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified

Информации о ORA-12705 море, но нигде эта ошибка не упоминается в связи с Hibernate.

Использую Oracle 10 g, Hibernate 4.3.7 код пишу под Eclipse Luna.

Попробовал последовать советам, установил NLS_LANG=American, а в инициализационном файле Eclipse добавил строки
-Duser.language=en
-Duser.region=us
Никакого эффекта.

Сталкивался ли кто-нибудь с подобным?

Буду признателен за любую информацию.

Ответ:
Для интересующихся расскажу, как разрешилась проблема.

Перешел от Oracle 10 к Oracle 11 и соответственно использовал новые версии драйверов. В результате проблема исчезла сама собой.
До этого все усилия с моей стороны не давали никаких результатов.

Было бы время, поисследовал бы, почему так, но, увы, времени нет.

Большое спасибо RageSteel за внимание !


Это сообщение отредактировал(а) lazycat - 12.1.2015, 02:44