高手帮看下这段代码哪里有错?
Dim mysc As SqlClient.SqlCommand = New SqlClient.SqlCommand( " ", myconn)
myconn.Open()
mysc.CommandText = "delete from xiangmu where id= " & Me.TextBox4.Text
mysc.ExecuteNonQuery()
myad = New SqlClient.SqlDataAdapter( "select * from xiangmu where 1=2 ", myconn)
myad.Fill(myset, "xiangmu1 ")
myset.Tables( "xiangmu1 ").Rows.Clear()
myset.Tables( "xiangmu1 ").Columns.Clear()
Dim mycol As New DataColumn
Dim myint As Int16
mycol.DataType = myint.GetType
mycol.ColumnName = "序号 "
myset.Tables( "xiangmu1 ").Columns.Add(mycol)
myad.SelectCommand.CommandText = "SELECT * FROM xiangmu "
Try
myset.Tables( "xiangmu1 ").Clear()
Catch ex As Exception
End Try
myad.Fill(myset, "xiangmu1 ")
Me.DataGrid1.DataSource = myset.Tables( "xiangmu1 ")
Dim myrow As DataRow
myint = 0
For Each myrow In myset.Tables( "xiangmu1 ").Rows
myrow.BeginEdit()
myint += 1
myrow.Item( "序号 ") = myint
myrow.EndEdit()
Next
Dim myts As New DataGridTableStyle
myts.MappingName = "xiangmu1 "
Me.DataGrid1.TableStyles.Add(myts)
myts.GridColumnStyles.Item( "序号 ").Width = 40
myts.GridColumnStyles.Item( "id ").Width = 0
MsgBox( "删除成功! ")
提示myset.Tables( "xiangmu1 ").Columns.Clear()此列是主键的一部分,因此不能移除。
[解决办法]
使用Access库调试未见错误~~~~~SQL Server没法做
[解决办法]
错误信息不是告诉你了迈?
因为,你调用 myad.Fill(myset, "xiangmu1 ") 的时候,自动加载数据库的模式到 Datatable 中,此时 Datatable 某个 Column 已经成为主键列了, 你不能移除 主键列!!!
要移除,先设置 MyDataTable.PrimaryKey = null;
[解决办法]
看不懂你这段代码,逻辑上有什么功能, 加载了表模式信息,然后又删除了所有的列,那又什么意义?
喜欢做无用功?
[解决办法]
没看代码,看报错似乎是你试图改变联合主键中的一个字段。
[解决办法]
你试图改变联合主键中的一个字段。
[解决办法]
Jinglecat(晓风残月 > > 问题需简洁,错误要详细)
--------------------------------------------
正解
[解决办法]
myset.Tables( "xiangmu1 ").Columns.Clear()???
问题行?