2015-11-11 4 views
0

Мое приложение закрывается после выполнения команды update через соединение oledb Я также использую DataAdapter, но он также закрывается без какой-либо ошибки, я могу выполнить вставку, удаление и выбор команды без проблем ,Заявление закрывается после выполнения команды обновления SQL Server CE

Мои DataAdapter команды

dta = New OleDb.OleDbDataAdapter("select * from [information]", con) 
dta.UpdateCommand = New OleDb.OleDbCommand("UPDATE [information] SET [needfile][email protected],[nofile][email protected]," & 
        "[subscription][email protected],[id][email protected],[name][email protected],[address][email protected],[tel][email protected],[phone][email protected]" & 
        " WHERE [idn][email protected]", con) 
dta.InsertCommand = New OleDb.OleDbCommand("INSERT INTO [information]([needfile],[nofile],[subscription],[id],[name],[address],[tel],[phone]) " & 
        "VALUES (@id,@name ,@address ,@tel ,@phone)", con) 
dta.DeleteCommand = New OleDb.OleDbCommand("DELETE FROM [information] WHERE [idn] = @idn", con) 

я попробовать это

If con.State = ConnectionState.Closed Then con.Open() 
dts = DataGridView1.DataSource 
dta.UpdateCommand.Parameters.Clear() 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@needfile", dts.Tables(0).Rows(e.RowIndex)(1))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@nofile", dts.Tables(0).Rows(e.RowIndex)(2))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@subscription", dts.Tables(0).Rows(e.RowIndex)(3))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@id", dts.Tables(0).Rows(e.RowIndex)(4))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@name", dts.Tables(0).Rows(e.RowIndex)(5))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@address", dts.Tables(0).Rows(e.RowIndex)(6))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@tel", dts.Tables(0).Rows(e.RowIndex)(7))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@phone", dts.Tables(0).Rows(e.RowIndex)(8))) 
dta.UpdateCommand.Parameters.Add(New OleDb.OleDbParameter("@idn", dts.Tables(0).Rows(e.RowIndex)(0))) 
dta.Update(dts) 
dts.AcceptChanges() 

или

... 
dta.UpdateCommand.Prepare() 
dta.UpdateCommand.ExecuteNonQuery() 

или

... 
UpdateCmd.ExecuteNonQuery() 

Я также пробовал dta.UpdateCommand.ExecuteNonQuery(), и он работает так же, моя программа выходит!

Даже когда я делаю это вручную с помощью OleDbCommand, моя программа выходит без ошибок.

Спасибо.

+0

своего выхода в dta.Update (ДЦ) или dta.UpdateCommand .ExecuteNonQuery() или com.ExecuteNonQuery() line – Tspersian

ответ

0

Использование .NET OleDb с SQL Compact с .NET не поддерживается, пожалуйста, используйте поставщик ADO.NET вместо (System.Data..SqlServerCe)

+0

Я использовал (System.Data.OleDb) not (System.Data.SqlServerCe). – Tspersian