OdbcDataAdapter 类

表示数据命令集和到数据源的连接,它们用于填充 DataSet 以及更新该数据源。无法继承此类。

**命名空间:**System.Data.Odbc
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public NotInheritable Class OdbcDataAdapter
    Inherits DbDataAdapter
    Implements IDbDataAdapter, IDataAdapter, ICloneable
用法
Dim instance As OdbcDataAdapter
public sealed class OdbcDataAdapter : DbDataAdapter, IDbDataAdapter, IDataAdapter, ICloneable
public ref class OdbcDataAdapter sealed : public DbDataAdapter, IDbDataAdapter, IDataAdapter, ICloneable
public final class OdbcDataAdapter extends DbDataAdapter implements IDbDataAdapter, IDataAdapter, 
    ICloneable
public final class OdbcDataAdapter extends DbDataAdapter implements IDbDataAdapter, IDataAdapter, 
    ICloneable

备注

OdbcDataAdapter 充当 DataSet 和数据源之间的桥梁,用于检索和保存数据。OdbcDataAdapter 通过以下方法提供这个桥接器:使用 Fill 将数据从数据源加载到 DataSet 中,并使用 UpdateDataSet 中所作的更改发回数据源。

OdbcDataAdapter 填充 DataSet 时,它为返回的数据创建必需的表和列(如果它们尚不存在)。但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用 FillSchema,让 OdbcDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。有关更多信息,请参见 向 DataSet 添加现有约束

提示

在针对没有主键列的数据源调用 Fill 方法时,OdbcDataAdapter 会尝试将唯一的约束列提升到主键列。在该过程中,OdbcDataAdapter 将唯一的约束标记为不可为空,除非唯一的约束列中有空值。否则此行为不会起作用。如果存在空值,Fill 方法会因为约束冲突而失败。为了避免这种情况,唯一的约束列中不允许使用空值。

提示

由于本机 ODBC 驱动程序的限制,调用 FillSchema 时始终只返回一个 DataTable。即使是执行 SQL 批处理语句(您希望从中返回多个 DataTable 对象)时也如此。

OdbcDataAdapter 还包括 SelectCommandInsertCommandDeleteCommandUpdateCommandTableMappings 属性,以便于数据的加载和更新。

示例

下面的示例使用 OdbcCommandOdbcDataAdapterOdbcConnection 来选择记录并用选择的行填充 DataSet

Public Function GetDataSetFromAdapter( _
    ByVal dataSet As DataSet, ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OdbcConnection(connectionString)
        Dim adapter As New OdbcDataAdapter(queryString, connection)

        ' Open the connection and fill the DataSet.
        Try
            connection.Open()
            adapter.Fill(dataSet)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        ' The connection is automatically closed when the
        ' code exits the Using block.
    End Using

    Return dataSet
End Function
public DataSet GetDataSetFromAdapter(
    DataSet dataSet, string connectionString, string queryString)
{
    using (OdbcConnection connection = 
               new OdbcConnection(connectionString))
    {
        OdbcDataAdapter adapter = 
            new OdbcDataAdapter(queryString, connection);

        // Open the connection and fill the DataSet.
        try
        {
            connection.Open();
            adapter.Fill(dataSet);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
    return dataSet;
}

继承层次结构

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DataAdapter
         System.Data.Common.DbDataAdapter
          System.Data.Odbc.OdbcDataAdapter

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1

请参见

参考

OdbcDataAdapter 成员
System.Data.Odbc 命名空间

其他资源

使用 DataAdapter