错误 1 重载决策失败,原因是没有可访问的“FillSchema”可以用这些参数调用: “Public Overrides Function FillSchema(dataSet As System.Data.DataSet, schemaType As System.Data.SchemaType) As System.Data.DataTable()”: 类型“System.Data.OleDb.OleDbConnection”的值无法转换为“System.Data.DataSet”。 “Public Function FillSchema(dataTable As System.Data.DataTable, schemaType As System.Data.SchemaType) As System.Data.DataTable”: 类型“System.Data.OleDb.OleDbConnection”的值无法转换为“System.Data.DataTable”。
时间: 2024-02-28 14:54:19 浏览: 195
这个错误通常是因为代码中使用了错误的方法或参数来调用 FillSchema 方法。FillSchema 方法是用来填充数据表的架构信息,它需要传入一个数据集或数据表参数。根据错误信息,我们可以看到代码中将 OleDbConnection 对象直接传入了 FillSchema 方法,导致参数类型不匹配,从而引发了重载决策失败的错误。
解决这个错误的方法是,确认你的代码中是否正确地调用了 FillSchema 方法,并且传入了正确的参数。如果你需要填充整个数据集的架构信息,应该使用数据适配器的 FillSchema 方法,例如:
```vb.net
Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ExcelFile.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;'")
Dim adapter As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", connection)
Dim dataSet As New DataSet()
adapter.FillSchema(dataSet, SchemaType.Source)
```
在上面的代码中,我们首先创建了一个 OleDbConnection 对象和一个 OleDbDataAdapter 对象,然后使用 FillSchema 方法将架构信息填充到数据集中。注意,我们传入的第一个参数是一个数据集对象,而不是 OleDbConnection 对象。
如果你只需要填充单个数据表的架构信息,可以使用 FillSchema 方法的另一个重载,例如:
```vb.net
Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ExcelFile.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES;'")
Dim adapter As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", connection)
Dim dataTable As New DataTable()
adapter.FillSchema(dataTable, SchemaType.Source)
```
在上面的代码中,我们创建了一个 DataTable 对象,然后使用 FillSchema 方法将架构信息填充到数据表中。注意,我们传入的第一个参数是一个数据表对象,而不是 OleDbConnection 对象。
阅读全文