OleDbDataAdapter 插入记录
DataSet 中所作的更改发回数据源。
当 OleDbDataAdapter 填充 DataSet 时,它将为返回的数据创建适当的表和列(如果它们尚不存在)。但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用 FillSchema,让 OleDbDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。有关更多信息,请参见 向 DataSet 添加现有约束。
请注意,包括 MSDataShape 提供程序在内的某些 OLE DB 提供程序并不返回基表或主键信息。因此,OleDbDataAdapter 无法对任何已创建的 DataTable 正确设置 PrimaryKey 属性。在这些情况下,应该为 DataSet 中的表显式地指定主键。
OleDbDataAdapter 还包括 SelectCommand、InsertCommand、DeleteCommand、UpdateCommand 和 TableMappings 属性,以便于数据的加载和更新。
当创建 OleDbDataAdapter 的实例时,属性都设置为其初始值。有关这些值的列表,请参见 OleDbDataAdapter 构造函数。
OleDbDataAdapter 充当 DataSet 和数据源之间的桥梁,用于检索和保存数据。OleDbDataAdapter 通过以下方法提供这个桥接器:使用 Fill 将数据从数据源加载到 DataSet 中,并使用 Update 将 DataSet 中所作的更改发回数据源。
当 OleDbDataAdapter 填充 DataSet 时,它将为返回的数据创建适当的表和列(如果它们尚不存在)。但是,除非 MissingSchemaAction 属性设置为 AddWithKey,否则这个隐式创建的架构中不包括主键信息。也可以使用 FillSchema,让 OleDbDataAdapter 创建 DataSet 的架构,并在用数据填充它之前就将主键信息包括进去。
请注意,包括 MSDataShape 提供程序在内的某些 OLE DB 提供程序并不返回基表或主键信息。因此,OleDbDataAdapter 无法对任何已创建的 DataTable 正确设置 PrimaryKey 属性。在这些情况下,应该为 DataSet 中的表显式地指定主键。
OleDbDataAdapter 还包括 SelectCommand、InsertCommand、DeleteCommand、UpdateCommand 和 TableMappings 属性,以便于数据的加载和更新。
public static OleDbDataAdapter CreateDataAdapter(string selectCommand,
OleDbConnection connection)
{
OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection);
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
// Create the Insert, Update and Delete commands.
adapter.InsertCommand = new OleDbCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (?, ?)");
adapter.UpdateCommand = new OleDbCommand(
"UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
"WHERE CustomerID = ?");
adapter.DeleteCommand = new OleDbCommand(
"DELETE FROM Customers WHERE CustomerID = ?");
// Create the parameters.
adapter.InsertCommand.Parameters.Add("@CustomerID",
OleDbType.Char, 5, "CustomerID");
adapter.InsertCommand.Parameters.Add("@CompanyName",
OleDbType.VarChar, 40, "CompanyName");
adapter.UpdateCommand.Parameters.Add("@CustomerID",
OleDbType.Char, 5, "CustomerID");
adapter.UpdateCommand.Parameters.Add("@CompanyName",
OleDbType.VarChar, 40, "CompanyName");
adapter.UpdateCommand.Parameters.Add("@oldCustomerID",
OleDbType.Char, 5, "CustomerID").SourceVersion =
DataRowVersion.Original;
adapter.DeleteCommand.Parameters.Add("@CustomerID",
OleDbType.Char, 5, "CustomerID").SourceVersion =
DataRowVersion.Original;
return adapter;
}
using System;
using System.Data;
using System.Data.OleDb;
class Class1
{
static void Main()
{
}
public static OleDbDataAdapter CreateDataAdapter(string selectCommand,
OleDbConnection connection)
{
OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection);
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
// Create the Insert, Update and Delete commands.
adapter.InsertCommand = new OleDbCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (?, ?)");
adapter.UpdateCommand = new OleDbCommand(
"UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
"WHERE CustomerID = ?");
adapter.DeleteCommand = new OleDbCommand(
"DELETE FROM Customers WHERE CustomerID = ?");
// Create the parameters.
adapter.InsertCommand.Parameters.Add("@CustomerID",
OleDbType.Char, 5, "CustomerID");
adapter.InsertCommand.Parameters.Add("@CompanyName",
OleDbType.VarChar, 40, "CompanyName");
adapter.UpdateCommand.Parameters.Add("@CustomerID",
OleDbType.Char, 5, "CustomerID");
adapter.UpdateCommand.Parameters.Add("@CompanyName",
OleDbType.VarChar, 40, "CompanyName");
adapter.UpdateCommand.Parameters.Add("@oldCustomerID",
OleDbType.Char, 5, "CustomerID").SourceVersion =
DataRowVersion.Original;
adapter.DeleteCommand.Parameters.Add("@CustomerID",
OleDbType.Char, 5, "CustomerID").SourceVersion =
DataRowVersion.Original;
return adapter;
}
OleDbDataAdapter 插入记录相关推荐
- SQL中获取刚插入记录时对应的自增列的值
--创建数据库和表 create database MyDataBase use MyDataBase create table mytable ( id int identity(1,1), nam ...
- Mybatis获取插入记录的自增长ID
转自:http://blog.csdn.net/tolcf/article/details/39035259 1.在Mybatis Mapper文件中添加属性"useGeneratedKey ...
- Mongodb源码分析--插入记录及索引B树构建
在之前的一篇文章中,介绍了assembleResponse函数(位于instance.cpp第224行),它会根据op操作枚举类型来调用相应的crud操作,枚举类型定义如下: enum Op ...
- [导入]C#向Sql Server中插入记录时单引号的处理
ASP.Net种使用C#, 向CoreDB.myBBS表中插入记录值(Title, Content)[文章的标题和内容],由于Content, Title中可能包含单引号,直接使用sql的insert ...
- 表的插入、更新、删除、合并操作_4_同时往多个表插入记录
同时往多个表插入记录 需求描述 需求:从dept表里插入数据到3张表,当loc是NEW YORK和BOSTON时向dept_east表中插入,当当loc是CHICAGO时向dept_mid表中插入,其 ...
- mysql插入实现存在更新_mysql 记录不存在时插入 记录存在则更新的实现方法
mysql 记录不存在时插入在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问 ...
- 使用SQLite数据库存储数据(2)-向表中插入记录
向表中插入记录 向数据表Notebook中添加一条新的记事日志,成功插入记录后,会显示一个提醒视图. - (IBAction)addNote:(id)sender { char *errMsg; co ...
- MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,各位同学可尝试参考. 案一:使用ignore ...
- 黄聪:mysql 存在该记录则更新,不存在则插入记录的sql
一条mysql教程 存在该记录则更新,不存在则插入记录的sql INSERT table (auto_id, auto_name) values (1, 'yourname') ON DUPLICAT ...
最新文章
- 《社交网站界面设计(原书第2版)》——2.13 不要中断电子邮件
- weinre调试移动端页面
- MTM:matlab实现4主函数
- 在项目中缓存是如何使用的?
- 【BZOJ 4671】异或图 【斯特林反演】【线性基】【贝尔数复杂度】
- javascript设计模式--命令模式
- STL源码剖析学习二:空间配置器(allocator)
- ad20中怎么多选操作改层_在操作系统中CPU是怎么调度的
- 动态类型语言和静态类型语言
- The type javax.xml.rpc.ServiceException cannot be resolved.It is indirectly
- 从外行到外包,从手工测试到知名互联大厂测开 我经历了我这个年龄段不该经历的事情...
- ImageOptim 图片压缩工具
- R语言TCGA数据下载及处理biolinks包的学习与使用(一)数据下载
- 我想成为一个记计算机程序员英语作文,我的梦想高中英语作文带翻译
- MP3格式的音乐怎么转换成WAV格式?小编教你一招
- linux配置dhcp超级作用域,Linux DHCP服务器 超级作用域
- HTML的head,头头头头!!!
- 数据治理【数据安全管理】
- 浅谈跨站脚本攻击与防御
- 【百度地图API】JS版本的常见问题
热门文章
- springcloud服务注册中心eureka搭建
- 互联网日报 | 6月9日 星期三 | 腾讯发布长中短视频计划;阿里云新增两大海外数据中心;陌陌持续25个季度盈利...
- 互联网平台“直播+”赋能研究报告
- 一种基于随机投影的本地差分隐私高维数值型数据收集算法
- 作者:江荣(1984-),男,博士,国防科学技术大学助理研究员。
- 《大数据》2015年第3期“专题”——网络表示学习(上)
- 【数字逻辑设计】毛刺
- 用完全平方数填满指定区域(洛谷P2666题题解,Java语言描述)
- 【数据结构与算法】链式队列的Java实现
- (三)Clang/ LLVM编译流程简述