未将对象引用设置到对象的实例。哪里的问题?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickmyad = New SqlClient.SqlDataAdapter("select * from yhxx where 1=2", myconn)
myad.Fill(myset, "yhxx")
myset.Tables("yhxx").PrimaryKey = Nothing
myset.Tables("yhxx").Rows.Clear()
myset.Tables("yhxx").Columns.Clear()
Dim mycol As New DataColumn
Dim myint As Int16
mycol.DataType = myint.GetType
mycol.ColumnName = "序号"
myset.Tables("yhxx").Columns.Add(mycol)
mystr = "select * from yhxx WHERE 时间 >= '" & Me.DateTimePicker1.Value.Date & "' and 时间 <= '" & Me.DateTimePicker2.Value.Date & "'and 单位 like '%" & TextBox2.Text & "%' and 整改情况 = '未整改'"
myad = New SqlClient.SqlDataAdapter(mystr, myconn)
myad.Fill(myset, "yhxx")
Me.DataGridView1.DataSource = myset.Tables("yhxx")
Dim myrow As DataRow
myint = 0
For Each myrow In myset.Tables("yhxx").Rows
myrow.BeginEdit()
myint += 1
myrow.Item("序号") = myint
myrow.EndEdit()
Next
End Sub
这个是form中的查询BUTTON代码。
Private Sub DataGridView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.DoubleClick
Dim mykey(1) As DataColumn
mykey(0) = myset.Tables("yhxx").Columns("id")
myset.Tables("yhxx").PrimaryKey = mykey
Dim myrow6 As DataRow
myrow6 = myset.Tables("yhxx").Rows.Find(Me.DataGridView1.Item(1, Me.DataGridView1.CurrentRow.Index).Value)
If myrow6 Is Nothing Then
myset.Tables("yhxx").PrimaryKey = mykey
myrow6 = myset.Tables("yhxx").Rows.Find(Me.DataGridView1.Item(1, Me.DataGridView1.CurrentRow.Index).Value)
Else
a = Me.DataGridView1.CurrentRow.Cells("专业").Value
b = myrow6.Item("单位")
c = myrow6.Item("时间")
d = myrow6.Item("地点")
l = myrow6.Item("班次")
f = myrow6.Item("检查人")
g = myrow6.Item("责任人")
h = myrow6.Item("限期时间")
i = myrow6.Item("整改意见")
j = myrow6.Item("存在隐患")
k = myrow6.Item(0)
End If
Dim w As yhzg = New yhzg()
w.Show()
End Sub
上段是DATAGRIDVIEW双击弹出新窗口代码。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Me.CheckBox1.Checked = True Then
Try
If Me.Txtid.Text = "" Then
MsgBox("不能修改!")
Else
Dim mycomm As SqlClient.SqlCommand = New SqlClient.SqlCommand("", myconn)
myconn.Open()
mycomm.CommandText = "update yhxx set 专业='" & Me.Txtzy.Text & "' where id=" & Me.Txtid.Text
mycomm.ExecuteNonQuery()
mycomm.CommandText = "update yhxx set 单位='" & Me.cmbdw.Text & "' where id=" & Me.Txtid.Text
mycomm.ExecuteNonQuery()
mycomm.CommandText = "update yhxx set 时间='" & Me.dtp1.Text & "' where id=" & Me.Txtid.Text
mycomm.ExecuteNonQuery()
mycomm.CommandText = "update yhxx set 地点='" & Me.txtdd.Text & "' where id=" & Me.Txtid.Text
mycomm.ExecuteNonQuery()
myconn.Close()
End If
Catch ex As Exception
End Try
Else
MsgBox("未成成功保存,如整改完成请选中是否整改!")
End If
MsgBox("保存成功!")
End Sub
上段是弹出新窗口后修改保存代码。
现在出现一个问题,就是当修改完成后如何实现DATAGRIDVIEW1的自动刷新?还一个问题就是修改完毕后,再点击最上面那个BUTTON1的代码时提示myset.Tables("yhxx").Columns.Clear()此列是主键的一部分,因此不能移除。,这是在最上面那段代码红色部分没加的时候,后来加了红色部分那段代码,现在却出现未将对象引用设置到对象的实例。这个是哪里的问题?请教 了
--------------------编程问答-------------------- PrimaryKey 禁止为空
--------------------编程问答-------------------- 主鍵給你修改成空了吧。 --------------------编程问答-------------------- 我晕死,在没加myset.Tables("yhxx").PrimaryKey = Nothing
之前时提示此列是主键的一部分,因此不能移除
加了上面那句成了未将对象引用设置到对象的实例
那到底应该怎么个改法 --------------------编程问答-------------------- 设置断点看看吧
我知道我以前也出现这种报错,最后发现是dim***as 缺少new的事~~~~ --------------------编程问答-------------------- 唉 ,还请高手帮下! --------------------编程问答-------------------- 不会没人会吧真晕! --------------------编程问答-------------------- 你把红色不去掉 然后直接设置 count= 0 看看效果也是清楚表的结构
myset.Tables("yhxx").Rows.count= 0
myset.Tables("yhxx").Columns.count =0 --------------------编程问答-------------------- 楼主多此一举啊 你完全可以定义个自己构造的datatable 然后加到dataset里面去吗 然后再把你要的结果fill进去 上面
myad = New SqlClient.SqlDataAdapter("select * from yhxx where 1=2", myconn)
myad.Fill(myset, "yhxx")
myset.Tables("yhxx").PrimaryKey = Nothing
myset.Tables("yhxx").Rows.Clear()
myset.Tables("yhxx").Columns.Clear()
完全是废代码 既然你要一个空表 要写这些干什么? --------------------编程问答-------------------- 我是想自动刷新一下表 --------------------编程问答-------------------- 不用new 关键声明变量就会出现"未将对象引用设置到对象的实例"
--------------------编程问答-------------------- 未创建实例,就是未New ,定位到出错的位置,看看是哪一个变量未New 。
补充:.NET技术 , VB.NET