DataGrid控件与DataGridView的区别

roy1989 2010-10-27 04:16:50
            ' 在数据集当中建立一个名称为学生信息的数据表
Dim studentTable As DataTable = myDataSet.Tables.Add("学生信息")
With studentTable
' 建立院系编号字段
.Columns.Add("院系编号", System.Type.GetType("System.Int32"))
' 设定院系编号字段不允许为空
.Columns("院系编号").AllowDBNull = False
' 建立学号字段
.Columns.Add("学号", System.Type.GetType("System.String"))
' 设定学号字段最大长度为4位
.Columns("学号").MaxLength = 4
' 设定学号字段不允许为空
.Columns("学号").AllowDBNull = False
' 设定学号字段默认值为"XXXX"
.Columns("学号").DefaultValue = "XXXX"
' 建立姓名字段
.Columns.Add("姓名", System.Type.GetType("System.String"))
' 设定姓名字段最大长度为16位
.Columns("姓名").MaxLength = 16
' 设定姓名字段不允许为空()
.Columns("姓名").AllowDBNull = False
' 设定姓名字段默认值为"XXXXXX"
.Columns("姓名").DefaultValue = "XXXXXX"
' 建立性别字段,字段类型为"System.Boolean"
.Columns.Add("性别", System.Type.GetType("System.String"))
' 设定性别字段最大长度为2位
.Columns("性别").MaxLength = 2
' 设定性别字段不允许为空
.Columns("性别").AllowDBNull = False
' 设定性别字段默认值为"XXXXXX"
.Columns("性别").DefaultValue = "男"
' 建立身份证号码字段
.Columns.Add("身份证号码", System.Type.GetType("System.String"))
'设定身份证号码字段最大长度为15位
.Columns("身份证号码").MaxLength = 18
' 设定身份证号码字段默认值为"000000000000000000"
.Columns("身份证号码").DefaultValue = "000000000000000"
' 建立入学日期字段
.Columns.Add("入学日期", System.Type.GetType("System.DateTime"))
.Columns("入学日期").DefaultValue = Today
' 建立入学年龄字段
.Columns.Add("入学年龄", System.Type.GetType("System.Int32"))
.Columns("入学年龄").DefaultValue = 18
' 建立注册字段,字段类型为"System.Boolean"
.Columns.Add("注册", System.Type.GetType("System.Boolean"))
End With
' 将学号字段定义为数据表的主键
studentTable.PrimaryKey = New DataColumn() { _
studentTable.Columns("院系编号"), studentTable.Columns("学号")}

' 设定身份证号码字段惟一约束
studentTable.Columns("身份证号码").Unique = True

' 将记录新增至数据集 myDataSet 当中的院系管理数据表
Dim newRow As DataRow

newRow = myDataSet.Tables("院系管理").NewRow()
newRow("院系名称") = "机电工程"
myDataSet.Tables("院系管理").Rows.Add(newRow)

newRow = myDataSet.Tables("院系管理").NewRow()
newRow("院系名称") = "电子工程"
myDataSet.Tables("院系管理").Rows.Add(newRow)

newRow = myDataSet.Tables("院系管理").NewRow()
newRow("院系名称") = "工程管理"
myDataSet.Tables("院系管理").Rows.Add(newRow)

' 将记录新增至数据集 myDataSet 当中的学生信息数据表

newRow = myDataSet.Tables("学生信息").NewRow()
newRow("院系编号") = 1
newRow("学号") = "1001"
newRow("姓名") = "赵皓天"
newRow("性别") = "男"
newRow("身份证号码") = "370231198403211578"
newRow("入学日期") = #9/13/2003#
newRow("入学年龄") = 21
newRow("注册") = 0
myDataSet.Tables("学生信息").Rows.Add(newRow)

Return myDataSet
End Function
'调用makeTable建立myDataSet
Dim myDataSet As DataSet = makeTable()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

' 将 DataGrid 控件数据绑定至数据表
dgDemo.DataSource = myDataSet.Tables("院系管理")
End Sub


Private Sub btnTestState_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTestState.Click
'定义数据表
Dim myTable As DataTable
'定义一行
Dim myRow As DataRow
'返回表达式显式地转换为指定数据类型DataTable的结果
myTable = CType(dgDemo.DataSource, DataTable)
Dim versionString As String
Dim version As DataRowVersion
Try
' 创建新行
myRow = myTable.NewRow()
' Detached row.
MsgBox("说明:" & vbCrLf & vbCrLf & _
" New Row 是 " & myRow.RowState.ToString & "状态。", _
MsgBoxStyle.Information, "测试记录状态")
'插入到表中
myTable.Rows.Add(myRow)
' New row.
MsgBox("说明:" & vbCrLf & vbCrLf & _
" AddRow 是 " & myRow.RowState.ToString & "状态。", _
MsgBoxStyle.Information, "测试记录状态")

myTable.AcceptChanges()
' Unchanged row.
MsgBox("说明:" & vbCrLf & vbCrLf & _
"AcceptChangs 是 " & myRow.RowState.ToString & "状态。", _
MsgBoxStyle.Information, "测试记录状态")

myRow("院系名称") = "电子信息"
' Modified row.
MsgBox("说明:" & vbCrLf & vbCrLf & _
" Modified 是 " & myRow.RowState.ToString & "状态。", _
MsgBoxStyle.Information, "测试记录状态")

myTable.AcceptChanges()
' Unchanged row.
MsgBox("说明:" & vbCrLf & vbCrLf & _
"AcceptChangs 是 " & myRow.RowState.ToString & "状态。", _
MsgBoxStyle.Information, "测试记录状态")

myRow.Delete()
' Deleted row.
MsgBox("说明:" & vbCrLf & vbCrLf & _
" Deleted 是 " & myRow.RowState.ToString & "状态。" _
, MsgBoxStyle.Information, "测试记录状态")

myTable.AcceptChanges()
' Unchanged row.
MsgBox("说明:" & vbCrLf & vbCrLf & _
"AcceptChangs 是 " & myRow.RowState.ToString & "状态。", _
MsgBoxStyle.Information, "测试记录状态")
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

Private Sub btnTestVersion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTestVersion.Click
Dim myTable As DataTable
Dim myRow As DataRow
Dim versionString As String
Dim version As DataRowVersion

myTable = CType(dgDemo.DataSource, DataTable)
' 用户选择的单元.
myRow = myTable.Rows(dgDemo.CurrentCell.RowNumber)
For Each versionString In [Enum].GetNames(GetType(DataRowVersion))
version = CType([Enum].Parse(GetType(DataRowVersion), versionString), DataRowVersion)
'获取一个值,该值指示指定版本是否存在。
If myRow.HasVersion(version) Then
MsgBox("myRow(院系名称," & version.ToString & ")=" & _
myRow("院系名称", version).ToString _
, MsgBoxStyle.Information, "当前记录的版本:" & version.ToString)
End If
Next

myRow.BeginEdit()
For Each versionString In [Enum].GetNames(GetType(DataRowVersion))
version = CType([Enum].Parse(GetType(DataRowVersion), versionString), DataRowVersion)
If myRow.HasVersion(version) Then
MsgBox("myRow(院系名称," & version.ToString & ")=" & _
myRow("院系名称", version).ToString _
, MsgBoxStyle.Information, "当记录在编辑操作期间的版本:" & version.ToString)
End If
Next

' 改变值
myRow("院系名称") = "电子信息"
For Each versionString In [Enum].GetNames(GetType(DataRowVersion))
version = CType([Enum].Parse(GetType(DataRowVersion), versionString), DataRowVersion)
If myRow.HasVersion(version) Then
MsgBox("myRow(院系名称," & version.ToString & ")=" & _
myRow("院系名称", version).ToString _
, MsgBoxStyle.Information, "记录接受更改操作后的版本:" & version.ToString)
End If
Next
myRow.AcceptChanges()

myRow.EndEdit()
For Each versionString In [Enum].GetNames(GetType(DataRowVersion))
version = CType([Enum].Parse(GetType(DataRowVersion), versionString), DataRowVersion)
If myRow.HasVersion(version) Then
MsgBox("myRow(院系名称," & version.ToString & ")=" & _
myRow("院系名称", version).ToString _
, MsgBoxStyle.Information, "当记录结束编辑操作期间的版本:" & version.ToString)
End If
Next

End Sub


End Class


请教一下大家,这是我在VS2003上做的一个小程序,用于测试记录的状态和版本。在VS2003下编译运行正确,可是到了VS2005下,采用DataGridView控件,以下语句出现错误:myRow = myTable.Rows(dgDemo.CurrentCell.RowNumber)。
这个具体的要怎么修改呢?麻烦大家了,谢谢~
...全文
609 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonybaby2001 2011-02-18
  • 打赏
  • 举报
回复
myRow = myTable.Rows(dgDemo.CurrentCell.RowIndex)

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧