zoukankan      html  css  js  c++  java
  • <转载>OleDb操作Access数据库:新增记录时获取自动编号的主键值

    //打开数据库的一般方法
    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();
  • 相关阅读:
    浅谈Sass与Less区别、优缺点
    混合开发的几个框架
    什么是Node.js?
    初入AngularJS
    jQuery的效果函数
    jQuery的一些选择器
    CSS3新增的属性有哪些:
    linux 新建用户、用户组 以及为新用户分配权限
    linux各个文件作用
    Linux CentOS6.5 命令修改网络配置
  • 原文地址:https://www.cnblogs.com/xiexiaokui/p/2837949.html
Copyright © 2011-2022 走看看