搞了一天都没有搞定!!!!给100分,请高手帮忙!!!!!!!!!!!!
程序这样:
Dim ds As New DataSet()
Dim dt As New DataTable()
Dim dc As New DataColumn()
dc = New DataColumn()
dc.ColumnName = "NO"
dc.DataType = System.Type.GetType("System.Single")
dt.Columns.Add(dc)
运行到dt.Columns.Add(dc)时出现下面错误
未处理的“System.NullReferenceException”类型的异常出现在 WindowsApplication3.exe 中
其他信息:未将对象引用设置到对象的实例。
问题点数:0、回复次数:8Top
1 楼senvy(senvy)回复于 2003-09-02 14:12:13 得分 0
dc = New DataColumn()
=>
Set dc = New DataColumn()Top
2 楼wangchong(网虫)回复于 2003-09-02 14:16:52 得分 0
这两句是一回事呀!!!!Top
3 楼panyee(快乐王子)回复于 2003-09-02 14:19:46 得分 0
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("PropID", typeof(string)));
dt.Columns.Add(new DataColumn("PropName", typeof(string)));
dt.Columns.Add(new DataColumn("PropValue", typeof(string)));Top
4 楼Brunhild()回复于 2003-09-02 14:21:25 得分 0
楼主的代码我已试过,没有出错,可能不是语句的问题。
Top
5 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-09-02 14:25:44 得分 0
以下示例创建两个 DataTable 对象和一个 DataRelation 对象,并将这些新对象添加到 DataSet 中。然后通过调用 DataGrid.SetDataBinding 方法在 DataGrid 控件中显示这些表。
' Put the next line into the Declarations section.
Private myDataSet As DataSet
Private Sub MakeDataTables()
' Run all of the functions.
MakeParentTable()
MakeChildTable()
MakeDataRelation()
BindToDataGrid()
End Sub
Private Sub MakeParentTable()
' Create a new DataTable.
Dim myDataTable As DataTable = New DataTable("ParentTable")
' Declare variables for DataColumn and DataRow objects.
Dim myDataColumn As DataColumn
Dim myDataRow As DataRow
' Create new DataColumn, set DataType, ColumnName and add to DataTable.
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.Int32")
myDataColumn.ColumnName = "id"
myDataColumn.ReadOnly = True
myDataColumn.Unique = True
' Add the Column to the DataColumnCollection.
myDataTable.Columns.Add(myDataColumn)
' Create second column.
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "ParentItem"
myDataColumn.AutoIncrement = False
myDataColumn.Caption = "ParentItem"
myDataColumn.ReadOnly = False
myDataColumn.Unique = False
' Add the column to the table.
myDataTable.Columns.Add(myDataColumn)
' Make the ID column the primary key column.
Dim PrimaryKeyColumns(0) As DataColumn
PrimaryKeyColumns(0) = myDataTable.Columns("id")
myDataTable.PrimaryKey = PrimaryKeyColumns
' Instantiate the DataSet variable.
myDataSet = New DataSet()
' Add the new DataTable to the DataSet.
myDataSet.Tables.Add(myDataTable)
' Create three new DataRow objects and add them to the DataTable
Dim i As Integer
For i = 0 To 2
myDataRow = myDataTable.NewRow()
myDataRow("id") = i
myDataRow("ParentItem") = "ParentItem " + i.ToString()
myDataTable.Rows.Add(myDataRow)
Next i
End Sub
Private Sub MakeChildTable()
' Create a new DataTable.
Dim myDataTable As DataTable = New DataTable("childTable")
Dim myDataColumn As DataColumn
Dim myDataRow As DataRow
' Create first column and add to the DataTable.
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.Int32")
myDataColumn.ColumnName = "ChildID"
myDataColumn.AutoIncrement = True
myDataColumn.Caption = "ID"
myDataColumn.ReadOnly = True
myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myDataTable.Columns.Add(myDataColumn)
' Create second column.
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "ChildItem"
myDataColumn.AutoIncrement = False
myDataColumn.Caption = "ChildItem"
myDataColumn.ReadOnly = False
myDataColumn.Unique = False
myDataTable.Columns.Add(myDataColumn)
' Create third column.
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.Int32")
myDataColumn.ColumnName = "ParentID"
myDataColumn.AutoIncrement = False
myDataColumn.Caption = "ParentID"
myDataColumn.ReadOnly = False
myDataColumn.Unique = False
myDataTable.Columns.Add(myDataColumn)
myDataSet.Tables.Add(myDataTable)
' Create three sets of DataRow objects, five rows each, and add to DataTable.
Dim i As Integer
For i = 0 To 4
myDataRow = myDataTable.NewRow()
myDataRow("childID") = i
myDataRow("ChildItem") = "Item " + i.ToString()
myDataRow("ParentID") = 0
myDataTable.Rows.Add(myDataRow)
Next i
For i = 0 To 4
myDataRow = myDataTable.NewRow()
myDataRow("childID") = i + 5
myDataRow("ChildItem") = "Item " + i.ToString()
myDataRow("ParentID") = 1
myDataTable.Rows.Add(myDataRow)
Next i
For i = 0 To 4
myDataRow = myDataTable.NewRow()
myDataRow("childID") = i + 10
myDataRow("ChildItem") = "Item " + i.ToString()
myDataRow("ParentID") = 2
myDataTable.Rows.Add(myDataRow)
Next i
End Sub
Private Sub MakeDataRelation()
' DataRelation requires two DataColumn (parent and child) and a name.
Dim myDataRelation As DataRelation
Dim parentColumn As DataColumn
Dim childColumn As DataColumn
parentColumn = myDataSet.Tables("ParentTable").Columns("id")
childColumn = myDataSet.Tables("ChildTable").Columns("ParentID")
myDataRelation = New DataRelation("parent2Child", parentColumn, childColumn)
myDataSet.Tables("ChildTable").ParentRelations.Add(myDataRelation)
End Sub
Private Sub BindToDataGrid()
' Instruct the DataGrid to bind to the DataSet, with the
' ParentTable as the topmost DataTable.
DataGrid1.SetDataBinding(myDataSet, "ParentTable")
End Sub
Top
6 楼wangchong(网虫)回复于 2003-09-02 14:31:09 得分 0
这段代码我原来也测试过,没有什么问题,但现在有问题了。不知为什么!!Top
7 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-09-02 14:32:09 得分 0
楼主,你的代码没有错
我在窗体上加一个datagrid试了一下
能显示列NO
Dim ds As New DataSet()
Dim dt As New DataTable()
Dim dc As DataColumn
dc = New DataColumn()
dc.ColumnName = "NO"
dc.DataType = System.Type.GetType("System.Single")
dt.Columns.Add(dc)
DataGrid1.SetDataBinding(dt, "")
Top
8 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-09-02 14:32:20 得分 0
楼主,你的代码没有错
我在窗体上加一个datagrid试了一下
能显示列NO
Dim ds As New DataSet()
Dim dt As New DataTable()
Dim dc As DataColumn
dc = New DataColumn()
dc.ColumnName = "NO"
dc.DataType = System.Type.GetType("System.Single")
dt.Columns.Add(dc)
DataGrid1.SetDataBinding(dt, "")
Top
9 楼CMIC(大象)回复于 2003-09-02 14:43:00 得分 0
Dim ds As New DataSet()
Dim dt As New DataTable()
Dim dc As New DataColumn()
dc = New DataColumn()
dc.ColumnName = "NO"
dc.DataType = System.Type.GetType("System.Single")'这句错了改成dc.DataType = System.Type.GetType(System.Single)
dt.Columns.Add(dc)
Top




