Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
6 / 6 / 1
Регистрация: 14.11.2008
Сообщений: 82
1

помогите с ExecuteNonQuery

19.08.2011, 12:56. Показов 4922. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема не обновляются данные в БД .sdf. Форма справочник / грид через select вытаскивает данные на форму из БД. При попытке сохранить новые данные в БД с формы через сформированный запрос грид обновляет выбор из базы и отображает их как добавленные а на самом деле в базе этих записей нет база пустая. Ошибок при выполнении ExecuteNonQuery не возникает. Подскажите кто сталкивался что я упустил. Когда писал такие запросы к sql server 2005 все было отлично. А теперь sql compact 3.5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
try
            {
                String MyQuery = "INSERT INTO Medicament(Name,Okdp,Edinica,Sum) VALUES (@1,@2,@3,@4)";
                
                Conect.Command = new SqlCeCommand(MyQuery, Conect.Conection);
                Conect.Command.Parameters.Add("@1", SqlDbType.NChar, 25);
                Conect.Command.Parameters.Add("@2", SqlDbType.NChar, 10);
                Conect.Command.Parameters.Add("@3", SqlDbType.NChar, 10);
                Conect.Command.Parameters.Add("@4", SqlDbType.Float);
 
                Conect.Command.Parameters["@1"].Value = name;
                Conect.Command.Parameters["@2"].Value = key;
                Conect.Command.Parameters["@3"].Value = ed;
                Conect.Command.Parameters["@4"].Value = Convert.ToDouble(sum);
 
                Conect.Command.ExecuteNonQuery();
                Conect.Conection.Close();
                MessageBox.Show("Запись успешно добавлена","Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (SqlCeException mes)
            {
                MessageBox.Show(mes.Message);
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2011, 12:56
Ответы с готовыми решениями:

ExecuteNonQuery returns -1
Доброго времени суток! просмотрел похожие темы, решения не нашел( столкнулся с такой проблемой:...

cmd.ExecuteNonQuery();
Здравствуйте. Кто разбирается, помогите пожалуйста. нажимаю на кнопку изменить, выходит эта...

ExecuteNonQuery возвращает -1 (
Почему то запрос не выполняется вот код: помогите плиз... public bool SaveNewCredit(Guid ID,...

не работает ExecuteNonQuery();
Хочу написать процедуру, которая по аббревиатуре искала бы в таблице полное название факультета, но...

6
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.08.2011, 15:44 2
Alexen, а какова строка подключения к SQL Compac?
0
6 / 6 / 1
Регистрация: 14.11.2008
Сообщений: 82
19.08.2011, 22:04  [ТС] 3
Строка подключения

C#
1
2
3
4
5
6
7
8
9
10
11
 try
            {
                ConectionString = "Data Source=|DataDirectory|\\Database_Med.sdf";
                Conect.Conection = new SqlCeConnection(ConectionString);
                Conect.Conection.Open();
            }
            catch (Exception)
            {
               MessageBox.Show("Ошибка соединения с базой", "Ошибка",MessageBoxButtons.OK,MessageBoxIcon.Error);
               this.Close();
            }
Сами объекты объявлены в Programm

C#
1
2
3
4
5
6
7
  class Conect
    {
        public static SqlCeConnection Conection;
        public static SqlCeDataAdapter Adapter;
        public static SqlCeCommand Command;
        public static DataSet MyDs;
    }
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.08.2011, 22:23 4
Вроде правильно, попробуйте без параметров напрямую задавая вносимые значения в строку запроса и посмотрите в отладчике, где возникает ошибка
0
6 / 6 / 1
Регистрация: 14.11.2008
Сообщений: 82
19.08.2011, 22:38  [ТС] 5
Пробовал на прямую через запрос задавать значение параметров запрос так же проходит без ошибок
ExecuteNonQuery возвращает так же 1 данные в базу не заносяться. Пробовал в VS2008 напрямую запрос в таблицу послать данные добавляются без проблем. В чем причина непойму.
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.08.2011, 22:42 6
Воспользуйся отладкой, чтобы найти слабое звено в программе
0
6 / 6 / 1
Регистрация: 14.11.2008
Сообщений: 82
19.08.2011, 23:11  [ТС] 7
Помоему нашел....

Добавлено через 5 минут
Существующие подключения к данным в обозревателе серверов или обозревателе баз данных также изменяются, чтобы указывать на файл базы данных проекта (файл базы данных из корневой папки проекта).
При построении проекта файл базы данных может быть скопирован из корневой папки проекта в выходную папку (bin). (нажмите Показать все файлы в Обозревателе решений для просмотра папки bin). Подобное поведение зависит от свойства файла Копировать в выходной каталог. По умолчанию свойство Копировать в выходной каталог зависит от типа используемого файла базы данных.

Примечание
Влияние свойства Копировать в выходной каталог не распространяется на веб-проекты и проекты C++.
Файл базы данных в корневой папке проекта изменяется только при изменении схемы базы данных или данных с помощью Обозревателя серверов/Обозревателя баз данных или иных Визуальные инструменты для баз данных.
Поведение файла базы данных зависит от значения свойства Копировать в выходной каталог, которое описывается в следующей таблице.
В процессе разработки приложения любые изменения данных (при выполнении приложения) вносятся базу данных в папке bin. Например, при нажатии клавиши F5 для отладки приложения выполняется подключение к базе данных в папке bin.

Добавлено через 21 минуту
Не правильно создал подключение файлов БД 2 один в корне директории другой автоматом копируется в бин. Когда работает приложение по умолчанию устанавливает и изменяет данные в БД папки бин. Я ее не заметил там сначал. А когда хотел посмотреть записанные данные в БД корневой директории так как она пустая она еще докучи копировалась в бин стирая все что я туда записал.
Просто создал подключение без добавления базы в проект и все заработало. Спс всем кто
поучавствовал.
0
19.08.2011, 23:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2011, 23:11
Помогаю со студенческими работами здесь

ExecuteNonQuery возвращает -1
Подскажите, пожалуйста, почему ExecuteNonQuery возвращает -1? private static string connStr...

Ошибка в ExecuteNonQuery()
Подскажите пожалуйста при изменении базы данных возникла ошибка ExecuteNonQuery(), как ее исправить...

Ругается на ExecuteNonQuery();
string card = "TransistorCard"; sqlConnection.Open(); using (var...

Foreach + cmd.ExecuteNonQuery()
Господа, помогите :scratch: Есть массив, форичем проверяю значение элемента массива и при true...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru