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

помогите с ExecuteNonQuery

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

Проблема не обновляются данные в БД .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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2011, 12:56
Ответы с готовыми решениями:

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

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

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

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

ExecuteNonQuery непонятная ошибка
Непонятная ошибка : string payAmount =...

6
Eugene22
_
2352 / 1225 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.08.2011, 15:44 2
Alexen, а какова строка подключения к SQL Compac?
0
Alexen
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
Eugene22
_
2352 / 1225 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.08.2011, 22:23 4
Вроде правильно, попробуйте без параметров напрямую задавая вносимые значения в строку запроса и посмотрите в отладчике, где возникает ошибка
0
Alexen
6 / 6 / 1
Регистрация: 14.11.2008
Сообщений: 82
19.08.2011, 22:38  [ТС] 5
Пробовал на прямую через запрос задавать значение параметров запрос так же проходит без ошибок
ExecuteNonQuery возвращает так же 1 данные в базу не заносяться. Пробовал в VS2008 напрямую запрос в таблицу послать данные добавляются без проблем. В чем причина непойму.
0
Eugene22
_
2352 / 1225 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.08.2011, 22:42 6
Воспользуйся отладкой, чтобы найти слабое звено в программе
0
Alexen
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2011, 23:11

Почему ответ от ExecuteNonQuery -1?
int id; using (SqlConnection sqlCon = new SqlConnection(connection)) { ...

ExecuteNonQuery: Свойство Connection не инициализировано
У меня ошибка при использовании кнопки. Можете помочь? private void button12_Click(object...

ExecuteNonQuery не добавляет данные в таблицу
Метод добавления: private void AddOrder(string clientID, string date, string workerID, string...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru