Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
1

ошибка при выполнении SqlCeCommand.ExecuteNonQuery()

24.07.2012, 14:13. Просмотров 2768. Ответов 20
Метки нет (Все метки)

таблица: id(uniqueidemtifier),name(ntextl),namel(ntext),date(datetime)

C#
1
2
3
4
5
6
7
8
9
10
string constr = "Data Source=bd.sdf;Persist Security Info=True";     
SqlCeConnection ConnectionString = new SqlCeConnection(constr);
SqlCeCommand myCommand = ConnectionString.CreateCommand();
if (myCommand.Connection.State == ConnectionState.Closed)
        myCommand.Connection.Open();
myCommand.CommandText = "Insert into table (name,namel, date) Values ('@name', '@namel','GETDATE())"; 
myCommand.Parameters.Add("@name", SqlDbType.NText).Value = textBox1.Text;
myCommand.Parameters.Add("@namel", SqlDbType.NText).Value = textBox1.Text;
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
вроде пишу правильно а ошибку выводит на
C#
1
myCommand.ExecuteNonQuery();
"A first chance exception of type 'System.Data.SqlServerCe.SqlCeException' occurred in System.Data.SqlServerCe.dll"
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2012, 14:13
Ответы с готовыми решениями:

Исключение при выполнении запроса к базе данных command.ExecuteNonQuery
public sealed class DataAccessLayer { string _connectionString =...

Обращение ExecuteNonQuery дает "Ошибка синтаксиса при определении поля"
Доброго времени суток. Подскажите пожалуйста, что я делаю не правильно?...

Ошибка при выполнении Инсерта
Доброго времени суток. При выполнении инсерта OleDbConnection conn; ...

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

Невразумительная ошибка при выполнении PL/SQL
Пытаюсь выполнить следующий кусок кода SQL> declare 2> n integer; 3> m...

20
turbanoff
Эксперт Java
4024 / 3759 / 742
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
24.07.2012, 20:15 2
Уберите кавычки у параметров, сервер и так знает, что там строки.
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 21:06  [ТС] 3
Цитата Сообщение от turbanoff Посмотреть сообщение
Уберите кавычки у параметров, сервер и так знает, что там строки.
спасибо,подскажи пожалуйста из-за чего ошибка и как её исправить.
0
Миниатюры
ошибка при выполнении SqlCeCommand.ExecuteNonQuery()  
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 21:45 4
Вместо вставки скриншота вы бы лучше вставляли текст исключения через "Copy exception detail to the clipboard"

Добавлено через 3 минуты
Лишнюю кавычку перед GETDATE() вы уже убрали?
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 22:10  [ТС] 5
Цитата Сообщение от canopen Посмотреть сообщение
Вместо вставки скриншота вы бы лучше вставляли текст исключения через "Copy exception detail to the clipboard"

Добавлено через 3 минуты
Лишнюю кавычку перед GETDATE() вы уже убрали?
System.Data.SqlServerCe.SqlCeException was unhandled
Message=There was an error parsing the query. [ Token line number = 1,Token line offset = 13,Token in error = table ]
Source=SQL Server Compact ADO.NET Data Provider
ErrorCode=-2147467259
HResult=-2147217900
NativeError=25501
StackTrace:
в System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
в System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan()
в System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery()
в WindowsFormsApplication1.Form1.Form1_Load(Object sender, EventArgs e) в c:\Users\Ver\Desktop\names\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs:строка 30
в System.Windows.Forms.Form.OnLoad(EventArgs e)
в System.Windows.Forms.Form.OnCreateControl()
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
в System.Windows.Forms.ContainerControl.WndProc(Message& m)
в System.Windows.Forms.Form.WmShowWindow(Message& m)
в System.Windows.Forms.Form.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
в System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
в System.Windows.Forms.Control.SetVisibleCore(Boolean value)
в System.Windows.Forms.Form.SetVisibleCore(Boolean value)
в System.Windows.Forms.Control.set_Visible(Boolean value)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.Run(Form mainForm)
в WindowsFormsApplication1.Program.Main() в c:\Users\Ver\Desktop\names\WindowsFormsApplication1\WindowsFormsApplication1\Program.cs:строка 18
в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()
InnerException:

да.
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 22:20 6
У вас существует таблица "table" в базе данных?

Добавлено через 1 минуту
Вот эта строчка ясно говорит что ошибка в структуре запроса и что серверу не нравится table:
Цитата Сообщение от Verusik Посмотреть сообщение
Message=There was an error parsing the query. [ Token line number = 1,Token line offset = 13,Token in error = table ]
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 22:23  [ТС] 7
Цитата Сообщение от canopen Посмотреть сообщение
У вас существует таблица "table" в базе данных?

Добавлено через 1 минуту
Вот эта строчка ясно говорит что ошибка в структуре запроса и что серверу не нравится table:

да,такая таблица есть.
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 22:24 8
А если попробовать переименовать ее?
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 22:26  [ТС] 9
Цитата Сообщение от canopen Посмотреть сообщение
А если попробовать переименовать ее?
не получается т.к везде закрыто.
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 22:27 10
На самом деле конечно экранировать надо - [table]
Видимо, название таблицы совпало с ключевым словом.
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 22:30  [ТС] 11
Цитата Сообщение от canopen Посмотреть сообщение
На самом деле конечно экранировать надо - [table]
System.Data.SqlServerCe.SqlCeException was unhandled
Message=The column cannot contain null values. [ Column name = id,Table name = table ]
Source=SQL Server Compact ADO.NET Data Provider
ErrorCode=-2147467259
HResult=-2147217873
NativeError=25005
StackTrace:
в System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& pCursor, Boolean& isBaseTableCursor)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options)
в System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery()
в WindowsFormsApplication1.Form1.Form1_Load(Object sender, EventArgs e)
в System.Windows.Forms.Form.OnLoad(EventArgs e)
в System.Windows.Forms.Form.OnCreateControl()
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
в System.Windows.Forms.ContainerControl.WndProc(Message& m)
в System.Windows.Forms.Form.WmShowWindow(Message& m)
в System.Windows.Forms.Form.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
в System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
в System.Windows.Forms.Control.SetVisibleCore(Boolean value)
в System.Windows.Forms.Form.SetVisibleCore(Boolean value)
в System.Windows.Forms.Control.set_Visible(Boolean value)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.Run(Form mainForm)
в WindowsFormsApplication1.Program.Main()
в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()
InnerException:

он же должен сам заполняться,auto_increment же.
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 22:40 12
Если вы хотите чтобы столбец (id) автоматически заполнялся, это надо в его свойствах задать. К тому же я не уверен, что uniqueidentifier может задаваться автоматически. Зачем вам вообще uniqueidentifier?
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 22:48  [ТС] 13
Цитата Сообщение от canopen Посмотреть сообщение
Если вы хотите чтобы столбец (id) автоматически заполнялся, это надо в его свойствах задать. К тому же я не уверен, что uniqueidentifier может задаваться автоматически. Зачем вам вообще uniqueidentifier?
значит int (в свойствах есть indentity) но теперь пишет
" Message=The column cannot be modified. [ Column name = id ]"
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 22:56 14
Это исключение вылетает на том же самом запросе?
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 22:56  [ТС] 15
Цитата Сообщение от canopen Посмотреть сообщение
Это исключение вылетает на том же самом запросе?
C#
1
myCommand.CommandText = "Insert into [table] (id,name,namel, date) Values ('',@name, @namel,GETDATE())";
да.
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 23:00 16
Ну, это уже другой запрос )))
Если поле заполняется автоматически, то не нужно его указывать в insert. То есть:
C#
1
myCommand.CommandText = "Insert into [table] (name,namel, date) Values (@name, @namel,GETDATE())";
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 23:52  [ТС] 17
Цитата Сообщение от canopen Посмотреть сообщение
Ну, это уже другой запрос )))
Если поле заполняется автоматически, то не нужно его указывать в insert. То есть:
C#
1
myCommand.CommandText = "Insert into [table] (name,namel, date) Values (@name, @namel,GETDATE())";

так,ладно, а теперь он нечего не выдает но и не заливает в таблицу)

Добавлено через 51 минуту
Как можно узнать почему не заливается в базу если не показывает ошибку?
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
24.07.2012, 23:54 18
Уже пора наверное новую тему создавать )
1
Verusik
0 / 0 / 1
Регистрация: 26.11.2011
Сообщений: 23
24.07.2012, 23:59  [ТС] 19
Цитата Сообщение от canopen Посмотреть сообщение
Уже пора наверное новую тему создавать )
ну тут думаю можно ответить)) не понятно из-за чего он не заливает....
0
canopen
420 / 421 / 93
Регистрация: 16.07.2012
Сообщений: 886
25.07.2012, 00:04 20
Единственное что могу посоветовать - попробуйте преобразовать запрос чтобы в нем не использовались параметры. И попробуйте выполнить этот вопрос не из своей программы, а из какого-нибудь другого клиента

Добавлено через 1 минуту
Как вы кстати проверяете, добавилась строка или нет? А то может вообще вы смотрите одну базу данных, а программа работает с другой. Всякое бывает
1
25.07.2012, 00:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2012, 00:04

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

Ошибка при выполнении UPDATE - No connection associated with this command
SQLiteConnection connect = new SQLiteConnection("Data Source=base.db;");...

Ошибка при выполнении CREATE TABLE: Число префиксов превышает максимально допустимое значение
Ребят помогите пожалуйста( раньше код работал сейчас же проблема( Вот сам код:...


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

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

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