请高手看看:索引超出数组界限问题
只要MOUSE在DATAFRID的垂直滚动条上按一下或移动,然后新增记录时,会出现如下错误,是什么原因?
"向原始数据区提交数据时出错........"
然后点击DATAGRID出现如下:
未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.windows.forms.dll 中。
索引超出数组界限.
代码如下:
Public Class Form1
Inherits System.Windows.Forms.Form
Dim bmmaster As BindingManagerBase
Dim strdataitem As String
Dim cnwhxz As New OleDbConnection
Dim dsusers As New DataSet
Public dausers As New OleDbDataAdapter
#Region " Windows 窗体设计器生成的代码 "
#End Region
Public Sub uploadadddata()
updatadata()
End Sub
Public Sub uploadmodifydata()
updatadata()
End Sub
Public Sub uploaddeleteData()
updatadata()
End Sub
Public Sub filldata()
dausers.Fill(Dsusers)
End Sub
Private Sub updatadata()
dausers.Update(Dsusers, "users")
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cnwhxz.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Application.StartupPath & "\data\whxz.mdb;User Id=admin;Password=;"
Dim myselecttext As String = "SELECT * FROM users"
Dim selectcmd As OleDbCommand = New OleDbCommand(myselecttext, cnwhxz)
selectcmd.CommandTimeout = 30
dausers.SelectCommand = selectcmd
dausers.DeleteCommand = New OleDbCommand("DELETE FROM users WHERE userid=?", cnwhxz)
dausers.InsertCommand = New OleDbCommand("INSERT INTO users(userid, username) " & _
"VALUES (?, ?)", cnwhxz)
dausers.UpdateCommand = New OleDbCommand("UPDATE users SET userID = ?, username = ? " & _
"WHERE userID = ?", cnwhxz)
dausers.InsertCommand.Parameters.Add("@userid", OleDbType.Char, 8, "userid")
dausers.InsertCommand.Parameters.Add("@username", OleDbType.VarChar, 40, "username")
dausers.UpdateCommand.Parameters.Add("@userID", OleDbType.Char, 8, "userID")
dausers.UpdateCommand.Parameters.Add("@username", OleDbType.VarChar, 40, "username")
dausers.UpdateCommand.Parameters.Add("@olduserid", OleDbType.Char, 8, "userid").SourceVersion = DataRowVersion.Original
dausers.DeleteCommand.Parameters.Add("@userid", OleDbType.Char, 8, "userID").SourceVersion = DataRowVersion.Original
dsusers.EnforceConstraints = False
dausers.Fill(dsusers, "users")
dsusers.EnforceConstraints = True
' dsusers.Tables("users").PrimaryKey = New DataColumn() {dsusers.Tables("users").Columns("userid")}
' Dim pkusers As Constraint = dsusers.Tables("users").Constraints.Add( _
' "PK_userid", dsusers.Tables("users").Columns("userid"), True)
txid.DataBindings.Clear()
txname.DataBindings.Clear()
txid.DataBindings.Add(New Binding("text", dsusers, "users.userid"))
txname.DataBindings.Add(New Binding("text", dsusers, "users.username"))
DataGrid1.SetDataBinding(dsusers, "")
DataGrid1.DataMember = "users"
DataGrid1.DataSource = dsusers
bmmaster = Me.BindingContext(dsusers, "users")
End Sub
Private Sub bnfirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnfirst.Click
bmmaster.Position = 0
End Sub
Private Sub bnprior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnprior.Click
If bmmaster.Position <> 0 Then
bmmaster.Position -= 1
End If
End Sub
Private Sub bnnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnnext.Click
If bmmaster.Position <> bmmaster.Count Then
bmmaster.Position += 1
Else
bmmaster.Position = bmmaster.Count
End If
End Sub
Private Sub bnlast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnlast.Click
bmmaster.Position = bmmaster.Count
End Sub
Private Sub bnadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnadd.Click
Try
bmmaster.EndCurrentEdit()
bmmaster.AddNew()
Catch err As ApplicationException
MessageBox.Show(err.ToString, "新增记录发生错误", _
MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End Try
txid.Focus()
End Sub
Private Sub bncancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bncancel.Click
bmmaster.CancelCurrentEdit()
End Sub
Private Sub bndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bndelete.Click
If bmmaster.Count > 0 Then
If MessageBox.Show("确定删除本记录吗?", "删除确认", _
MessageBoxButtons.YesNo, MessageBoxIcon.Question) = _
DialogResult.Yes Then
bmmaster.RemoveAt(bmmaster.Position)
End If
End If
End Sub
Private Sub bnupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnupdate.Click
dsusers.EnforceConstraints = False
bmmaster.EndCurrentEdit()
If dsusers.HasChanges(DataRowState.Deleted) Then
Try
uploaddeleteData()
dsusers.AcceptChanges()
Catch err As SystemException
dsusers.RejectChanges()
MessageBox.Show(Err.ToString)
End Try
End If
If dsusers.HasChanges(DataRowState.Added) Then
Try
uploadadddata()
dsusers.AcceptChanges()
Catch err As System.Data.OleDb.OleDbException
dsusers.RejectChanges()
MessageBox.Show(err.ToString)
Catch err As System.SystemException
dsusers.RejectChanges()
MessageBox.Show(err.ToString)
End Try
End If
If dsusers.HasChanges(DataRowState.Modified) Then
Try
uploadmodifydata()
dsusers.AcceptChanges()
Catch err As System.SystemException
dsusers.RejectChanges()
MessageBox.Show(err.ToString)
End Try
End If
dsusers.EnforceConstraints = True
MessageBox.Show("数据更新完成!", "消息", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End Sub
Private Sub bnload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnload.Click
dsusers.EnforceConstraints = False
filldata()
dsusers.EnforceConstraints = True
MessageBox.Show("数据填入完成!", "消息", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End Sub
相关推荐
川崎机器人报警代码.pdf
代码 错误信息 PO100 非法的输入数据。 PO101 变量太多。 PO102 输入数据过大。 PO103 非法的PC编号。 PO104 非法的机器人编号。 PO105 非法程序 PO106 非法的优先级。 PO107 无效的坐标值。 PO108 语法错误。 PO109 无效语句。 PO110 请指明命令的全拼。 PO111 当前模式下不能使用该条命令/指令。 PO112 不能用D0指令执行。 PO113 不是程序指令。 PO114 非法表达式。 PO115 非法函数。 PO116 函数变量非法。 PO117 无效变量(或程序)名。 PO118 非法的变量型类。 PO119 数组下标错误。 PO120 括号不成对。 PO121 需要的是二进制算子。 PO122 非法常数。 PO123 非法的原定符。 PO124 无效标签。 PO125 缺字符。 PO126 非法的开关名称。 PO127 指定的开关名称需要全拼。 PO128 非法格式的分类符。 PO129 标签语句重复。 PO130 不能定义为数组。 PO131 数组的维数大于3。 PO132 数组变量已存在。 PO133 数组变量不
关于“检查更新,联网失败!索引超出了数组界限”的问题解决办法
检查网络连接和代理配置。尝试手动更新程序。检查并修复更新机制中的代码边界处理问题。更改 DNS 设置,确保网络正常。确认更新服务器是否可用或被屏蔽。希望如上措施及解决方案能够帮到有需要的你。PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。
关于C#索引超出了数组界限的问题??
当此程序调试后点击下拉菜单选项时就会提示索引超出了数组界限,但我找了半天也没有找出错误,请高手帮忙。本人初学,望帮忙修改一下!不胜感激!
ThoughtWorks.QRCode 1.0.4374.31614版本,可解决“索引超出了数组界限”问题
二维码生成dll,ThoughtWorks.QRCode 1.0.4374.31614版本,可解决“索引超出了数组界限”问题
Java中的索引超出界限错误。
ProfilerServant profilerServant = new ProfilerServant(args [4],args [5] .equals(“ true”));您确定args具有6个元素吗?


