C#中的各种Access操纵总结

关于表的操作: 

新建表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)

删除表:
Drop table [表名]

插入数据:
INSERT INTO [表名] (字段1,字段2) VALUES (100,'abc.NET')

删除数据:
DELETE FROM [表名] WHERE [字段名]>100

更新数据:
UPDATE [表名] SET [字段1] = 200,[字段2] = 'abc.NET' WHERE [字段三] = 'HAIWA'

新增字段:
ALTER TABLE [表名] ADD [字段名] NVARCHAR (50) NULL

删除字段:
ALTER TABLE [表名] DROP COLUMN [字段名]

修改字段:
ALTER TABLE [表名] ALTER COLUMN [字段名] NVARCHAR (50) NULL

重命名表:(Access 重命名表,请参考文章:在Access数据库中重命名表)
sp_rename '表名', '新表名', 'OBJECT'

新建约束:
ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= '2000-1-1')

删除约束:
ALTER TABLE [表名] DROP CONSTRAINT 约束名

新建默认值
ALTER TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT 'abc.NET' FOR [字段名]

删除默认值
ALTER TABLE [表名] DROP CONSTRAINT 默认值名

 

以上部分转载自  作者:PeterXu  来源:Blog.CSDN  Blog: http://blog.csdn.net/peterreg/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明,否则将追究法律责任。本文地址:http://blog.csdn.net/peterreg/archive/2008/05.aspx

 

--------------------------------------华丽的分割线-----------------------------------------

关于Access表的重命名:

数据量不大的时候可以选择:

select * into newtable name from oldTable;

drop table oldTableName;

 

---------------------------华丽的分割线-----------------------------------------

数据类型

access数据类型大全

ALTER TABLE tb ALTER COLUMN aa Byte 数字[字节]

ALTER TABLE tb ALTER COLUMN aa Long 数字[长整型]

ALTER TABLE tb ALTER COLUMN aa Short 数字[整型]

ALTER TABLE tb ALTER COLUMN aa Single 数字[单精度]

ALTER TABLE tb ALTER COLUMN aa Double 数字[双精度]

ALTER TABLE tb ALTER COLUMN aa Currency 货币

ALTER TABLE tb ALTER COLUMN aa Char 文本

ALTER TABLE tb ALTER COLUMN aa Text(n) 文本,其中n表示字段大小

ALTER TABLE tb ALTER COLUMN aa Binary 二进制

ALTER TABLE tb ALTER COLUMN aa Counter 自动编号

ALTER TABLE tb ALTER COLUMN aa Memo 备注

ALTER TABLE tb ALTER COLUMN aa Time 日期/时间

ALTER TABLE tb ALTER COLUMN aa bit 是否

-------------------------------------华丽的分割线------------------------------------

C#将excel导入Access

首先将excel导出到Datatable

  string excelConnectionStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.tbExcelPath.Text +
                ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1; '";
            string query = "SELECT   *   FROM   ["+this.cbSheetName.SelectedItem.ToString()+"$]";
            OleDbCommand oleCommand = new OleDbCommand(query, new OleDbConnection(excelConnectionStr));
            OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
            DataSet myDataSet = new DataSet();
            try
            {
                oleAdapter.Fill(myDataSet, this.tbNewDBTableName.Text); 
            }
            catch (Exception exx)
            {
                MessageBox.Show(exx.Message);
            }
            myDataSet.Tables[0].TableName = this.tbNewDBTableName.Text;

C# 将Dataset或者DataTable导入Access

先将dataset或者datatable导出为xml,再导入,如果有需要 自行增加主键.

 

            String strXML  = Environment.GetEnvironmentVariable("Temp") + "//xmldata.xml/";
            myDataSet.WriteXml(strXML,XmlWriteMode.WriteSchema);
                Microsoft.Office.Interop.Access.Application accessApp = new Microsoft.Office.Interop.Access.ApplicationClass();
                accessApp.OpenCurrentDatabase(this.tbDatabasePath.Text, false, "");
                accessApp.ImportXML(strXML, AcImportXMLOption.acStructureAndData);
                accessApp.CloseCurrentDatabase();

                accessApp.Quit(AcQuitOption.acQuitSaveAll);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(accessApp);
                accessApp=null;
                GC.Collect();
                System.IO.File.Delete(strXML);

 

-------------------------------------华丽的分割线------------------------------------

将dataset或者datatable保存到表中:

先删除,再添加:

 

            OleDbConnection oleConn = new OleDbConnection(connectStr);
            String sql = "delete from " + curModelName + " where ID >0";
            OleDbCommand cmd = new OleDbCommand(sql, oleConn);
            try
            {
                if (oleConn.State != ConnectionState.Open)
                {
                    oleConn.Open();
                }
               
                cmd.ExecuteNonQuery();
                for (i = 0; i < dt.Rows.Count; i++)
                {
                    sql = "insert into " + curModelName + " (指标层,权值) values ('" + dt.Rows[i][0].ToString() + "'," + dt.Rows[i][1].ToString() + ")";
                    cmd = new OleDbCommand(sql, oleConn);
                    cmd.ExecuteNonQuery();
                }
            catch (Exception ee)
            {
                MessageBox.Show("保存到数据库时出错,错误信息为:" + ee.Message);
            }
            finally
            {
                if (oleConn.State == ConnectionState.Open)
                {
                    oleConn.Close();
                }
            }

-------------------------------------华丽的分割线------------------------------------

额   总体来说 熟悉了就简单了 不外乎构造SQL语句  操作SQL语句  以前做数据库还是太少了,自勉!

 

转载于:https://www.cnblogs.com/hihikoo/archive/2010/11/16/1878107.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值