adapter.FillSchema(ds.Tables["temptbl"],SchemaType.Mapped);出现错误:方法要求所有参数具有显式设置的类型。
有人知道是怎么回事吧

解决方案 »

  1.   

    换成
    adapter.FillSchema(ds, SchemaType.Mapped, "temptbl");
      

  2.   

    DataAdapter.FillSchema 方法请参见
    DataAdapter 类 | DataAdapter 成员 | System.Data.Common 命名空间 | Fill | DataAdapter 成员(Visual J# 语法) | C++ 托管扩展编程 
    要求
    平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET
    语言
    C#C++JScriptVisual Basic全部显示
    将名为“Table”的 DataTable 添加到指定的 DataSet 中,并根据指定的 SchemaType 配置架构以匹配数据源中的架构。[Visual Basic]
    Public MustOverride Function FillSchema( _
       ByVal dataSet As DataSet, _
       ByVal schemaType As SchemaType _
    ) As DataTable() Implements IDataAdapter.FillSchema[C#]
    public abstract DataTable[] FillSchema(
       DataSet dataSet,
       SchemaType schemaType
    );[C++]
    public: virtual DataTable* FillSchema(
       DataSet* dataSet,
       SchemaType schemaType
    ) [] = 0;[JScript]
    public abstract function FillSchema(
       dataSet : DataSet,
       schemaType : SchemaType
    ) : DataTable[];参数
    dataSet 
    要用数据源中的架构填充的 DataSet。 
    schemaType 
    SchemaType 值之一。 
    返回值
    包含从数据源返回的架构信息的 DataTable 对象。实现
    IDataAdapter.FillSchema备注
    FillSchema 方法使用 SelectCommand 从数据源中检索架构。与 SelectCommand 关联的连接对象必须有效,但不需要将其打开。如果调用 FillSchema 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 FillSchema 之前连接已打开,它将保持打开状态。FillSchema 操作将 DataTable 添加到目标 DataSet 中。然后,它向 DataTable 的 DataColumnCollection 中添加列,并且当数据源中存在以下 DataColumn 属性时配置这些属性: AllowDBNull 
    AutoIncrement。您必须分别设置 AutoIncrementStep 和 AutoIncrementSeed。 
    MaxLength 
    ReadOnly 
    Unique 
    FillSchema 还根据以下规则配置 PrimaryKey 和 Constraints 属性: 如果 SelectCommand 返回一个或多个主键列,则它们被用作 DataTable 的主键列。 
    如果未返回任何主键列,但返回了唯一列,则当且仅当所有唯一列都不可为空时,唯一列用作主键。如果任何一列都可以为空,则将 UniqueConstraint 添加到 ConstraintCollection 中,但不设置 PrimaryKey 属性。 
    如果既返回了主键列又返回了唯一列,则主键列用作 DataTable 的主键列。 
    请注意,主键和唯一约束按照上述规则添加到 ConstraintCollection 中,但不添加其他约束类型。如果 DataAdapter 在填充 DataTable 时遇到重复列,它将以“columnname1”、“columnname2”、“columnname3”这种模式命名后面的列。如果传入数据包含未命名的列,它们将按“Column1”、“Column2”的模式放在 DataSet 中。向 DataSet 添加多个结果集时,每个结果集都放在一个单独的表中。将整数值追加到指定的表名(例如“Table”、“Table1”、“Table2”等)从而对附加结果集进行命名。在应用程序中使用列名和表名时应小心,一定不要与这些命名模式发生冲突。FillSchema 不返回任何行。使用 Fill 方法将行添加到 DataTable 中。注意   当处理返回多项结果的批处理 SQL 语句时,用于 OLE DB 的 .NET Framework 数据提供程序的 FillSchema 的实现只为第一项结果检索架构信息。若要为多项结果检索架构信息,请使用 MissingSchemaAction 设置为 AddWithKey 的 Fill。
    要求
    平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET