为什么应用程序在执行 SQL 服务器 CE 更新命令后关闭?
Why does Application close after executing a SQL Server CE update command?
我的应用程序在我通过 oledb 连接执行 update
命令后关闭
我也使用 DataAdapter
但它也没有任何错误地关闭,我可以毫无问题地执行插入、删除和 select 命令。
我的 DataAdapter
命令
dta = New OleDb.OleDbDataAdapter("select * from [information]", con)
dta.UpdateCommand = New OleDb.OleDbCommand("UPDATE [information] SET [needfile]=@needfile,[nofile]=@nofile," &
"[subscription]=@subscription,[id]=@id,[name]=@name,[address]=@address,[tel]=@tel,[phone]=@phone" &
" WHERE [idn]=@idn", 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
手动执行此操作,我的程序也没有任何错误地退出。
谢谢。
不支持将 .NET OleDb 与来自 .NET 的 SQL Compact 一起使用,请改用 ADO.NET 提供程序 (System.Data..SqlServerCe)
我的应用程序在我通过 oledb 连接执行 update
命令后关闭
我也使用 DataAdapter
但它也没有任何错误地关闭,我可以毫无问题地执行插入、删除和 select 命令。
我的 DataAdapter
命令
dta = New OleDb.OleDbDataAdapter("select * from [information]", con)
dta.UpdateCommand = New OleDb.OleDbCommand("UPDATE [information] SET [needfile]=@needfile,[nofile]=@nofile," &
"[subscription]=@subscription,[id]=@id,[name]=@name,[address]=@address,[tel]=@tel,[phone]=@phone" &
" WHERE [idn]=@idn", 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
手动执行此操作,我的程序也没有任何错误地退出。
谢谢。
不支持将 .NET OleDb 与来自 .NET 的 SQL Compact 一起使用,请改用 ADO.NET 提供程序 (System.Data..SqlServerCe)