shp数据导入mdb数据库失败

shp数据导入mdb数据库失败,第1张

shp数据导入mdb数据库失败原因是。

右键管理员权限运行程序,再不行就右键程序根目录空白地方-属性-安全-编辑-添加-高级-立即查找-找到你登录系统的账号双击-确定-选中账号-点允许选项最上面的完全控制-确定-完事。

转成shp格式的 *** 作方法和步骤如下:

准备工具:“database engineer 2010”、“GIS数据转换器(矢量-矢量)V21rar”、电脑。

1、首先,电脑中找到“database engineer 2010”、“GIS数据转换器(矢量-矢量)V21rar”,如下图所示。

2、其次,安装“database engineer  2010”应用程序,如下图所示。

3、接着,解压缩并运行“GIS数据转换器(矢量-矢量)V21”,如下图所示。

4、然后,完成上述步骤后,打开“GIS数据转换器(矢量-矢量)V21”,单击“输入数据”后面的图标,如下图所示。

5、随后,完成上述步骤后,单击以选择要转换的文件,如下图所示。

6、接着,完成上述步骤后,在d出的界面中,单击“确定”按钮,如下图所示。

7、然后,完成上述步骤后,等待显示“转换完成”,如下图所示。

8、最后,完成上述步骤后,就转换完成了,如下图所示。这样,问题就解决了。

在ArcCatalog中建立指定表空间的数据库连接(要以指定表空间的用户登录),然后在arccatlog中定位到数据源,选中并拷贝图层,再定位到数据库连接,最好用右键菜单粘贴就行了。如果往指定表空间的中的已有图层添加数据,在该图层上用右键菜单Load命令。

第一:导入数据库结构

第二:导入数据库数据

能上网的电脑

1

第一导入数据结构

打开本地计算机上的SQLServerManagementStudio客户端软件:

2

本地电脑:登陆本机数据库连接控制端:

3

选择您要导出到服务器的数据库然后鼠标右键:选择生成SQL脚本

4

选中本地电脑需要导出脚本的库名字

5

需要选择选择兼容sql2005的版本的脚本:

修改sql脚本的保存路径:记录下这个路径

查看生产脚本生成的选项:

成功生成sql脚本:并记录下脚本导出的路径

连接到虚拟主机提供的目标数据库服务器:

并点击新建查询,拷贝您导出的SQL脚本代码(此代码为第一步导出的sql脚本代码)到上图显示的查询分析器中,点击分析脚本,如果没有语法错误,就点击执行脚本,直到执行完毕。

导入数据结构完毕

第二:导入数据库数据

下面咱们开始导入数据库表中的数据:登陆您本地的数据库:

点击您本地计算机上的数据库右键-任务-导出数据:

选择目标数据库,如下添加虚拟主机提供给您的数据库信息(服务器地址,用户名,密码,数据库):

点击下一步,点击下一步,选中所有表,并确保“目标”

点击下一步,直到执行完毕:这样你的本地数据库就导入到虚拟主机上了

导入数据库数据完毕

mdb数据文件格式是access数据库的表文件格式,想要把数据资料导成mdb形式,你首先要在机子上装有Microsoft office access数据库才可以,在导出数据的时候保存类型选择成为microsoft office access(mdb)的就可以了。

思路很简单,就是先依次获取Excel中表的表名,然后再将Excel表的数据导入到内存以DataTable格式存在,最后再把dataTable数据导入到Mdb数据库文件中。最后实现的功能可以使Excel多表进行导入,如果Mdb数据库文件中已有新建的表, *** 作是先删除数据库中的已存在表,再重新创建表,导数据。

源码:

using System;using SystemCollectionsGeneric;using SystemComponentModel;using SystemData;using SystemDrawing;using SystemLinq;using SystemText;using SystemThreadingTasks;using SystemWindowsForms;using SystemDataOleDb;

namespace TestK

{

public partial class Form1 : Form    {

public Form1()

{

InitializeComponent();

}

public int tableNameNum = 0;   //记录Excel中所有表的数量        public OleDbConnection connection = new OleDbConnection("Provider=MicrosoftJetOLEDB40;Data Source=C:\\Users\\CES\\Desktop\\CESmdb");

//建立与数据库文件CESmdb的连接

//打开以xls或者xlsx结尾的文件        private void button1_Click(object sender, EventArgs e)

{

OpenFileDialog dlg = new OpenFileDialog();   //创建窗体            dlgFilter = "Excel文件 (xls;xlsx)|xls;xlsx";    //浏览过滤出以xls或者xlsx结尾的文件            if(dlgShowDialog() ==  DialogResultOK)

{

string filePath = dlgFileName;  //获取打开文件的路径                thistextBox1Text = filePath;

}

}

//获取Excel中所有表的表名        public string[] GetTableName(string excelFilename)

{

//建立与指定Excel文件的连接            string connectionString = stringFormat("Provider=MicrosoftACEOLEDB120;Data Source={0};Jet OLEDB:Engine Type=35;Extended Properties=Excel 80;Persist Security Info=False", excelFilename);

string[] tableName = new string[20]; //存储Excel中所有表的表名            string temp;  //中间变量

using (SystemDataOleDbOleDbConnection connection = new SystemDataOleDbOleDbConnection(connectionString))

{

connectionOpen();

//获取数据库架构信息,包括列、主键、表等信息                DataTable table = connectionGetOleDbSchemaTable(SystemDataOleDbOleDbSchemaGuidTables, null);

for (int i = 0; i < tableRowsCount;i++ )

{

temp = tableRows[i]["Table_Name"]ToString();  //获取Excel中的表名                    tableName[i] = tempReplace("$", "");   //因为获取的表名最后会有$符号,所以要替换                }

tableNameNum = tableRowsCount;

connectionClose();

}

return tableName;

}

//获取Excel中每张表的数据,以datatable类型返回        public DataTable GetExcelTable(string excelFilename,string tableName)

{

//建立与指定Excel文件的连接            string connectionString = stringFormat("Provider=MicrosoftACEOLEDB120;Data Source={0};Jet OLEDB:Engine Type=35;Extended Properties=Excel 80;Persist Security Info=False", excelFilename);

DataSet ds = new DataSet();  //数据集            //using中声明的对象connection,在using语句块结束后会自动释放            using (SystemDataOleDbOleDbConnection connection = new SystemDataOleDbOleDbConnection(connectionString))

{

connectionOpen();

//获取数据库架构信息,包括列、主键、表等信息                DataTable table = connectionGetOleDbSchemaTable(SystemDataOleDbOleDbSchemaGuidTables, null);

string strExcel = "select  from " + "[" + tableName + "$]";

//打开数据链接,得到一个数据集                OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, connectionString);

//在数据集中查询表名为tableName的表,然后把其数据在装入数据集ds中                adapterFill(ds, tableName);

connectionClose();

}

return dsTables[tableName];//以datatable类型返回数据集ds中表名为tableName的表        }

//判断在数据库中,指定表名的表是否存在        public bool TableExists(string table)

{

bool rythm;

connectionOpen();

//读取表名为table的表的行数信息            rythm = connectionGetSchema("Tables", new string[4] { null, null, table, "TABLE" })RowsCount > 0;

connectionClose();

return rythm;

}

//如果在建表之前,数据库已经存在该表,那么首先要先删除此表        public void DeleteTable(string tableName)

{

string sql = "drop table "+tableName+";";

connectionOpen();

OleDbCommand cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

connectionClose();

}

//中间类型为dataTable的表数据转换到数据库mdb文件中        public bool dataTableToMdb(string excelPath,string tableName)

{

//获取Excel中表的数据            DataTable dt = GetExcelTable(excelPath,tableName);

//表中数据大于等于两行,数据转入格式才是正确的            if (dtRowsCount >= 2)

{

string[] cloumnName = new string[50];

//获取Excel中表的所有列名                for (int i = 0; i < dtColumnsCount; i++)

{

cloumnName[i] = dtRows[0][i]ToString();

}

//在mdb数据库文件中创建表                string sql = "create table " + tableName + " (" + cloumnName[0] + " varchar null)";

connectionOpen();

OleDbCommand cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

//在mdb数据库文件中,给已创建好的表添加好所有列                    for (int i = 1; i < dtColumnsCount; i++)

{

sql = "alter table " + tableName + " add " + cloumnName[i] + " varchar null";

cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

}

//在mdb数据库文件中,给已创建好的表加入数据                            for (int t = 1; t < dtRowsCount; t++)

{

sql = "insert into " + tableName + " values('";

for (int k = 0; k < dtColumnsCount; k++)

{

if (k != dtColumnsCount - 1)

{

sql = sql + dtRows[t][k]ToString() + "','";

}

else                                    {

sql = sql + dtRows[t][k]ToString() + "')";

}

}

cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

}

connectionClose();

return true;

}

else            {

MessageBoxShow("Excel中"+ tableName +"表的原始数据格式不正确!");

}

return false;

}

private void button2_Click(object sender, EventArgs e)

{

int flag = 1;  //判断由Excel表导入到Mdb是否成功的标记变量                      

MDB是数据库文件,也是有很多表组成的

你的意思大概是有EXCEL格式的文件数据,导入到MDB中吧

那么 有个前提,EXCEL表格,每个SHEET 必须第一行是字段名,第二行开始是数据

这个,在ACCESS中 有个导入功能,选格式为EXCEL就可以导入了

以上就是关于shp数据导入mdb数据库失败全部的内容,包括:shp数据导入mdb数据库失败、ARCGIS打开mdb数据库,全是表格,怎么转成shp格式、怎样在ArcCatalog中通过ArcSDE往Oracle数据库中导入数据,怎样导入到指定的表空间(ArcGIS10.0) 悬赏5等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9655479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存