SQL 导出到 指定ACCESS表 完美方案
由于程序需要把SQL SERVER 里的数据导入到ACCESS里.
刚开始使用DataSet来循环.
数据量少的时候还算可以应付的过来.
但当数据多的时候.
会报错"位置错误"
在网上搜寻一番.找到一个方法.
使用insert into openrowset
接着错误一个接一个的来..
"插入错误: 列名或所提供值的数目与表定义不匹配。"
"未能找到 OLE DB 提供程序 'Provider=Microsoft.Jet.OleDb.4.0' 的注册表项。"
导入数据后列顺序全部打乱..
后来继续搜.搜阿.搜阿.搜阿搜..
找到了这个方法.指定列名的.这样就可以指定列了.
代码如下:
[code=SQL]insert into openrowset('Microsoft.Jet.OLEDB.4.0', 'd:\dgener.mdb';'admin';'',AccessTable) (ACCESS列名1,列名2) select SQL列名1,SQL列名2 from SqlTable
[/code]
相关文档:
数据库:
1、 创建数据库的语法:
if exists (select * from sysdatabases where name='DT_name') /*判断是否存在,是则删除*/
drop database DT_name
create database database_name
on primary /* 指定主要文件组,其中第一个主要文件 * ......
RDBMS
方言
DB2
org.hibernate.dialect.DB2Dialect
DB2 AS/400
org.hibernate.dialect.DB2400Dialect
DB2 OS390
org.hibernate.dialect.DB2390Dialect
PostgreSQL
org.hib ......
USE master
GO
DECLARE @dbname sysname
SET @dbname='TEST' --这个是要删除的数据库库名
DECLARE @s NVARCHAR(1000)
DECLARE tb CURSOR local FOR
SELECT s='KILL '+CAST(spid AS NVARCHAR)&nbs ......
--
> 测试数据:[tb]
if
object_id
(
'
[tb]
'
)
is
not
null
drop
table
[
tb
]
go
create
table
[
tb
]
(
[
id
]
int
,
[
lx
]
int
)
insert
[
tb
]
select
29
,
2
union
all
select
30
,
3
union
all
sel ......
更新方法一,直接在GridView中来更新数据.
更新方法二,打开一个新的页面来更新数据.
//更新
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
&nbs ......