Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2013, 11:34   #1
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию Работа с данными sql- Ошибка в запросе?(visual studio 2012 C#)

имеется такой вот участок кода:
Код:
try
            {
                using (var db = new SQLite.SQLiteConnection(dbpath))
                {
                    var res = from m in db.Table<Student>() where m.groupNumber == groupChoose select m;
                    var rt = from n in res where n.lessonGroup == lessChoose select n;
                    
                        foreach (var sd1 in rt)
                        {

                            db.Insert(new Evaluation()
                            {
                                date = dayToday,
                                student = sd1.idStudent,
                                vale = "5",
                                lessonVale = lessChoose,
                            }
                        );
                        }
                    
                }
            }
                 catch { }
            try 
            {
            using (var db = new SQLite.SQLiteConnection(dbpath))
                {
                    var res1 = from c in db.Table<Evaluation>() where ((c.lessonVale == lessChoose) && (c.date == dayToday)) select c;
                    ListOutVale.Items.Clear();
                    foreach (var sd1 in res1)
                    {
                        ListOutVale.Items.Add(sd1.vale.ToString());
                    }

                    db.Commit();
                    db.Dispose();
                    db.Close();


                }
            }
            catch { }
В первой части мы берем зарпос и исходя из полученного добавляем в таблицу оценок дату,айди студента, оценку, предмет.
НО! цикл foreach не работает(

Во второй части вывод того что получилось. Но это я пока проверить не могу пока первая работать не будет.

В чем ошибка?
Onni вне форума Ответить с цитированием
Старый 20.05.2013, 11:52   #2
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

Единственный вариант - rt пуст, как гнездо кукушки.

И что значит "не работает"? Отладчик переходит на первую строчку foreach и затем проскакивает цикл, не заходя в него ?
tools вне форума Ответить с цитированием
Старый 20.05.2013, 12:22   #3
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию

Цитата:
Сообщение от tools Посмотреть сообщение
Единственный вариант - rt пуст, как гнездо кукушки.

И что значит "не работает"? Отладчик переходит на первую строчку foreach и затем проскакивает цикл, не заходя в него ?
Да, именно так, но rt не пуст. Там три значения я проверяла. Однако sd1 принимает первое значение и цикл вылетает, сразу к catch дает исключение.
В таблицу ничего заносится(
Onni вне форума Ответить с цитированием
Старый 20.05.2013, 12:34   #4
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

ну если на catch прыгает, то вы хотя бы exception message вывели для разнообразия, а то мы гадать так долго будем
tools вне форума Ответить с цитированием
Старый 20.05.2013, 13:15   #5
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию

Не поняла о чем Вы, напишите код пожалуйста.
Смысл в том чтобы он показал сообщение в catch?
Onni вне форума Ответить с цитированием
Старый 20.05.2013, 13:52   #6
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

Код:
catch (Exception err)
{
     MessageBox.Show(err.Message);
}
tools вне форума Ответить с цитированием
Старый 20.05.2013, 15:03   #7
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию

Выдает такую ошибку:

SQLite.SQLiteException перехвачено
HResult=-2146233088
Message=Constraint
Source=App1
StackTrace:
at SQLite.PreparedSqlLiteInsertCommand .ExecuteNonQuery(Object[] source) in c:\Users\Onni\Documents\Visual Studio 2012\Projects\App1\App1\SQLite.cs:l ine 2057
at SQLite.SQLiteConnection.Insert(Obje ct obj, String extra, Type objType) in c:\Users\Onni\Documents\Visual Studio 2012\Projects\App1\App1\SQLite.cs:l ine 1108
at SQLite.SQLiteConnection.Insert(Obje ct obj) in c:\Users\Onni\Documents\Visual Studio 2012\Projects\App1\App1\SQLite.cs:l ine 991
at App1.PrivateOffice.New_day_Click(Ob ject sender, RoutedEventArgs e) in c:\Users\Onni\Documents\Visual Studio 2012\Projects\App1\App1\PrivateOffi ce.xaml.cs:line 273
InnerException:
Onni вне форума Ответить с цитированием
Старый 20.05.2013, 16:28   #8
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

Я давно с SQLite не работал, вот в этом кусочке кода:

Код:
db.Insert(new Evaluation()
                            {
                                date = dayToday,
                                student = sd1.idStudent,
                                vale = "5",
                                lessonVale = lessChoose,
                            });
Evaluation - это ваш собственный класс ?

Последний раз редактировалось tools; 20.05.2013 в 16:31.
tools вне форума Ответить с цитированием
Старый 20.05.2013, 16:39   #9
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию

Цитата:
Сообщение от tools Посмотреть сообщение
Я давно с SQLite не работал, вот в этом кусочке кода:

Код:
db.Insert(new Evaluation()
                            {
                                date = dayToday,
                                student = sd1.idStudent,
                                vale = "5",
                                lessonVale = lessChoose,
                            });
Evaluation - это ваш собственный класс ?
Да)
Вот его объявление:
Код:
using SQLite;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace App1.Model
{
    class Evaluation
    {
        [SQLite.PrimaryKey]
        public int student  { get; set; }
        public string date { get; set; }
        public string vale { get; set; }
        public string lessonVale { get; set; }
       
    }
}
Onni вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual Studio Express 2012 Kris7 Помощь студентам 1 02.03.2015 19:27
Работа с данными sql (visual studio 2012 C#) Onni Помощь студентам 0 20.05.2013 11:29
ошибка при запуске приложения visual studio 2012 Onni Помощь студентам 2 19.05.2013 09:15
Ошибки с приложениями в Visual Studio 2012 Andy_G Visual C++ 6 23.02.2013 12:18