博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<转载>OleDb操作Access数据库:新增记录时获取自动编号的主键值
阅读量:5988 次
发布时间:2019-06-20

本文共 1424 字,大约阅读时间需要 4 分钟。

//打开数据库的一般方法
OleDbConnection cnn = 
new 
OleDbConnection(sCnn);
cnn.Open();
DataTable table = 
new 
DataTable();
try
{
    
OleDbCommand cmd = 
new 
OleDbCommand(sCommand, cnn);
    
cmd.CommandType = cmdType;
    
//构建DataAdapter
    
OleDbDataAdapter adapter = 
new 
OleDbDataAdapter(cmd);
    
//填充数据
    
table = 
new 
DataTable(sDataTableName);
    
adapter.Fill(table);
    
cnn.Close();
    
table.PrimaryKey = 
new 
DataColumn[1] { table.Columns[0] };
    
OleDbCommandBuilder builder = 
new 
OleDbCommandBuilder(adapter);
    
builder.QuotePrefix = 
"["
;
    
builder.QuoteSuffix = 
"]"
;
    
adapter.InsertCommand = builder.GetInsertCommand();
    
adapter.DeleteCommand = builder.GetDeleteCommand();
    
adapter.UpdateCommand = builder.GetUpdateCommand();
    
adapter.RowUpdated += 
new 
OleDbRowUpdatedEventHandler(OnRowUpdated);
}
catch
{
}
  
  
//========================
//OleDbRowUpdatedEventHandler实例
protected 
void 
OnRowUpdated(
object 
sender, OleDbRowUpdatedEventArgs e)
{
    
if 
((e.Status == UpdateStatus.Continue) && e.StatementType == StatementType.Insert)
    
{
        
int 
newID = 0;
        
OleDbCommand cmdGetId = 
new 
OleDbCommand(
"SELECT @@IDENTITY"
, e.Command.Connection);
        
newID = (
int
)cmdGetId.ExecuteScalar();
        
e.Row[
"id"
] = newID;
        
if 
(newID == 0)
        
{
            
MessageBox.Show(
"获取ID值错误!"
);
        
}
    
}
}
  
//========================
//修改row的数据
    
System.Data.DataTable tblChange = table.GetChanges();
    
affectRowCount = adapter.Update(tblChange);
    
if 
(mode == modeNew)
    
{
        
row[
"id"
] = tblChange.Rows[0][
"id"
];
    
}
    
table.AcceptChanges();

 

转载地址:http://gfnlx.baihongyu.com/

你可能感兴趣的文章
webpack 简单命令
查看>>
MySQL之如何消除大量的@@session.tx_read_only
查看>>
解决zabbix图中出现中文乱码问题
查看>>
分库分表问题-思维导向图
查看>>
openssl实现证书申请
查看>>
nginx启用https
查看>>
编程题——11~20
查看>>
PopWindowns菜单的创建和基本使用
查看>>
移动应用市场2012年3大趋势:HTML5日渐成熟
查看>>
Phonegap中自定义插件的使用(日期选择器)
查看>>
linux下磁盘管理、分区、格式化、挂载
查看>>
Mysql 安装编译配置项说明
查看>>
Linux 第14天自习 btrfs和压缩归档
查看>>
初识ActiveMQ消息中间件
查看>>
mysql备份
查看>>
Everything is shadowy, everything is floating clouds.
查看>>
UIView的frame和bounds区别
查看>>
redhat中SSH登录方式详解
查看>>
css如何使body背景图片适合所有大小宽度的屏幕
查看>>
Windowssever 2008
查看>>