Ⅰ 使用ASP,EXCEL导入ACCESS,整列数据中即有文本又有数字请教高手怎么解决
excel文件此列的字段是不是设置成了备注或文本型?
以前存的那个数字形式的数据也应该是文本型或备注型的
否则导入时应该是正常的,你可以试着读取一下,看是否存在
你还可以在导入时,把他们用强制转换函数转换成类型一致,一定搞定呵呵
Ⅱ 文本文件导入到数据库中的几种方法
大型的数据库开发中常常遇到数据源是平面文件(如文本文件)的情况,对于这样的数据源,无法使用数据库对其数据进行有效的管理,另外也无法使用sql语句对其进行查询和操作,所以当务之急就是将这些平面文件导
入到数据库中,然后就可以对其进行高效的操作了。
下面介绍几种常见的数据导入的方法,希望能够给大家启迪。另外,本文所涉及到的数据库均为ORACLE数据库,其实对于其他数据库而言,方法类似。
一、Sql*:Loader
该方法是Oracle数据库下数据导入的最重要的方法之一,该工具由Oracle客户端提供,
其基本工作原理是:首先要针对数据源文件制作一个控制文件,控制文件是用来解释如何对源文件进行解析,其中需要包含源文件的数据格式、目标数据库的字段等信息,一个典型的控制文件为如下形式:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'
TRUNCATE (也可以用append替换TRUNCATE)
INTO TABLE fj_ipa_agentdetail
fields terminated ","
trailing nullcols
( AGENT_NO char,
AGENT_NAME char,
AGENT_ADDRESS char,
AGENT_LINKNUM char,
AGENT_LINKMAN char
)
其中,INFILE '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'指明所要导入的源文件,其实源文件也可以直接通过命令行来输入获得 ,fj_ipa_agentdetail为目标表的名字,fields terminated ","是指源文件的各个字段是以逗号分隔,trailing nullcols表示遇到空字段依然写入到数据库表中,最后这5个字段是目标数据库表的字段结构。通过上面这个典型的控制文件的格式分析可知,控制文件需要与源文件的格式信息一致,否则导入数据会出现异常。
除了控制以外,sql*loader的还需要数据文件,即源文件。根据格式的不同,源文件可以分为固定字段长度和有分隔符这两大类,这里将分别说明这两种情况:
固定字段长度的文本文件
就是每个字段拥有固定的字段长度,比如:
602530005922 1012
602538023138 1012
602536920355 1012
602531777166 1012
602533626494 1012
602535700601 1012
有分隔符的文本文件
就是每个字段都有相同的分隔符分隔,比如:
1001,上海长途电信综合开发公司,南京东路34号140室
1002,上海桦奇通讯科技有限公司,武宁路19号1902室
1003,上海邦正科技发展有限公司,南京东路61号903室
对于上述两种文件格式sql*loader均可以做处理,下面就前面那个固定长度的文本来举例说明:
由于该文本只有两个字段,一个为设备号,一个是区局编号,两者的长度分别为20和5,那么可以编制控制文件如下:
LOAD DATA
INFILE '/ora9i/fengjie/agent/data/ipaagent200410.txt'
TRUNCATE
INTO TABLE fj_ipa_agent
( DEVNO POSITION(1:20) CHAR,
BRANCH_NO POSITION(21:25) CHAR
)
其中,'/ora9i/fengjie/agent/data/ipaagent200410.txt'为该文件的完全路径,POSITION(M:N)表示该字段是从位置M到位置N。
对于有分隔符的数据文件,前面已经有一个例子,这里就不再赘述了。总之,使用Sql*Loader能够轻松将数据文件导入到数据库中,这种方法也是最常用的方法。
二、 使用专业的数据抽取工具
目前在数据仓库领域中,数据抽取与装载(ETL)是一重要的技术,这一技术对于一些大的数据文件或者文件数量较多尤其适合。这里简单介绍目前一款主流的数据抽取工具 ――Informatica。
该工具主要采用图形界面进行编程,其主要工作流程是:首先将源数据文件的结构(格式)导入为Informatica里,然后根据业务规则对该结构进行一定的转换(transformation),最终导入到目标表中。
以上过程仅仅只是做了一个从源到目标的映射,数据的实际抽取与装载需要在工作流(workflow)里进行。
使用专业的数据抽取工具,可以结合业务逻辑对多个源数据进行join,union,insect等操作,适合于大型数据库和数据仓库。
三、 使用Access工具导入
可以直接在Access里选择‘打开‘文本文件,这样按照向导来导入一个文本文件到Access数据库中,然后使用编程的方法将其导入到最终的目标数据 库中。
这种方法虽然烦琐,但是其对系统的软件配置要求相对较低,所以也是有一定的使用范围
Ⅲ 如何把TXT文件数据导入MySQL数据库
具体操作步骤如下:
1、首先打开Navicat软件,连接到数据库进入需要导入的数据库:
Ⅳ 如何将word中的数据导入到数据库中
1、首先,打开媒介工具“记事本”,将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中将txt文件取名为“数据源.txt”。
2/8
2、打开excel表格,点击“数据”选项卡,找到“自文本”。
小朋友语言迟缓2岁至4岁孩子不说话严重吗?
广告
3/8
3、点击“自文本”,弹出下一窗口,选择刚才保存的名为“数据源”的txt类型文件,点击“导入”。因“自文本”方式数据导入默认的只有三种文件类型txt、csv、prn,所以需要事先将word转变为txt。
【家长必看】_说话晚的孩子
广告
4/8
4、弹出“文本导入向导”对话框。选择最适合的文件类型,方便导入后,数据以已选择方式分列。点击“下一步”。
特别注意,如果选的“分隔符号”,则分隔符号必须是英文状态下的符号,否则导入后无法分列。
两岁小孩说话晚是什么原因?说话晚怎么办?
广告
5/8
5、设置分列数据所包含的分隔符号,其实就是导入数据列数的控制,选择分隔符。
示例文档用“,”把每列隔开的,所以选择“逗号”。
完成设定后,点击下一步。
6/8
6、列数据格式选择”常规“,”常规“选项更为智能。
完成设定后,点击完成。
7/8
7、数据存放位置最好是“现有工作表=$A$1”,指的就是从当前表格的第一行第一列开始放置数据。点击确定。
8/8
8、数据导入完成。
可以进一步编辑,或者是做几个表格的数据比对啦!
Ⅳ 如何将文本文档批量数据导入到数据库中
asp.net/c#代码实现excel to mssql数据导入
2008年12月17日 星期三 13:42
做网站项目时,可能会遇到将excel文件中的数据导入至sql server数据库的需求,把excel也看作数据库,使用OleDb连接后读取数据然后写入用SqlClient连接的sql server数据库即可,技术上没有什么难度。
但是需要考虑的一个问题是,系统安装的环境一般是专用sql server服务器+web服务器+客户端,而excel文件往往在客户端导入,如果直接使用sql语句读取的话,由于sql在web服务器上运行,不能读取到客户端的excel地址,就会出错了。
既然知道了错误的原因,解决方案也就有了:
1、把客户端的excel上传至web服务器上某文件夹,注意要给该文件夹设置网络用户的“写入”权限;
2、使用OleDb+sql语句读取web服务器上的excel文件
3、将读取的数据写入到sql server 数据库
4、将web服务器上的临时excel删除
部分代码如下:
string filename = FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf("\\"));
FileUpload1.PostedFile.SaveAs(Server.MapPath("fileupload\\") + filename);//上传文件
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("fileupload\\") + filename + ";Extended Properties=Excel 8.0";
string sqlin = "SELECT * FROM [Sheet2$]";
OleDbCommand olecommand = new OleDbCommand(sqlin, new OleDbConnection(conn));
OleDbDataAdapter adapterin = new OleDbDataAdapter(olecommand);
DataSet dsin = new DataSet();
adapterin.Fill(dsin);
DataTable dtin = dsin.Tables[0];//连接并读取excel数据
for (i = 3; i <= totalrow; i++)//将Excel文件中第一个工作表的数据导入到sql数据库scjd_youliaoxiaohaojihua表中
{
string sql = "insert into scjd_youliaoxiaohaojihua(yuexuhao,danwei,youpin,cheliangmingchengxinghao,zichanxing,chepaihao,qiyou,chaiyou,beizhu) values('";
int j;
sql += DropDownList1.SelectedValue.ToString() + DropDownList3.SelectedValue.ToString();
if (DropDownList1.SelectedValue.ToString() != DateTime.Now.Year.ToString() || int.Parse(DateTime.Now.Month.ToString()) != int.Parse(DropDownList3.SelectedValue.ToString()))
{
sql += "20";
}
else
{
if (int.Parse(DateTime.Now.Day.ToString()) < 10)
sql += "0";
sql += DateTime.Now.Day.ToString();
}
if (i-3 + count < 9)
sql += "00";
else if (i-3 + count < 99)
sql += "0";
sql += (i -3 + 1 + count).ToString();
sql += "','";
for (j = 1; j < 8; j++)
{//遍历Excel表中一行的所有列,除最后一列
sql += dtin.Rows[i][j].ToString().Trim();
sql += "','";
}
sql += dtin.Rows[i][8].ToString().Trim();
sql += "')";
try
{
DoSql(sql);
}
catch (Exception eeeeeee)
{
Response.Write("<script>alert('数据导入错误,请检查Excel文件')</script>");
return;
}
}
FileInfo file = new FileInfo(Server.MapPath("fileupload/") + filename);
if (file.Exists)
{//删除文件
file.Delete();
}
protected void DoSql(string sql)//执行sql语句的函数
{
SqlConnection conn = new SqlConnection();//创建连接对象
conn.ConnectionString = ConfigurationManager.AppSettings["conn"].ToString();//给连接字符串赋值
conn.Open();//打开数据库
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();//
conn.Close();//关闭数据库
}
注:
1、本文代码均取自我最近刚做的一个小项目,部分数据有较强针对性,并不通用,只有思路通用
2、由于能力和水平问题,部分代码显得有些笨拙,若能灵活运用存储过程,应能大幅度简化代码 只要你的文件能够用记事本打开并格式正确,就可以把他认为是文本文件进行处理.
象这种格式的数据没有什么太好的办法,只有从文本文件中逐行读取解析,当读到完整的记录时执行SQL语句插入到数据库中.
Ⅵ 将文本格式数据插入到DB2数据库中
首先,需要确定空的那一列在数据库中对应的字段是否允许为空。
其次,如果可以为空,那么运行如下命令,将数据导入数据库:
db2 "import from c:/text.txt of del commitcount 1000 insert into aa" ; 其中c:/text.txt是文件路径及名字,commitcount 1000表示每1000条记录提交一次,这样做可以在一定程度上避免日志满,此处1000为任意正整数。
另外还有一个命令,可以用于千万级海量数据导入:
db2 "load from c:/text.txt of del insert into aa" ; 实行的是装载操作,不写日志将数据导入数据库中,效率比较高。
如果那一列不能为空,那说明你的数据有问题,请检查数据合法性。
Ⅶ 如何把文本文件导入SQL数据库里面的一个表
学妹的数据文件有四列,而数据库表mm只有两列,前面两列相互对应。
所以,下面2个方法你可以尝试一下:
1、如果是SYBASE数据库,可以使用BCP之类的工具导入(数据文件后面两列可以先使用编辑器去除,否则会合并在author列,超过列定义宽度的被截掉)。如果是其它类型数据库,可能也会有类似工具导入。也可以使用第三方工具导入,比如PB中的Import功能(不必处理数据文件)。
2、使用SQL语句,你说过已经编程循环读取了文件的前两列信息,可以使用INSERT语句插入即可。
3、至于你提供的是ODBC驱动的错误提示:可能是由于超时所致。由于本人对ASP不甚了了,所以建议你在插入数据时,尽量逐条提交,提高事务的执行效率,也许会避免你所说的错误。或者可能需要使用ASP处理连接超时的问题!
希望我的回答对你有所帮助!
Ⅷ Excel怎么将填入的数据导进数据库
第一步:在ghost xp系统中启动Access,在向导的提示下建立一个“空数据库”以便用于存放从Excel中导入的数据
第二步:打开要导入数据的数据库,切换到“外部数据”选项卡,选择“Excel”按钮,打开“导入数据”对话框。
第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表.xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。
第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表.xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。
第五步:勾选“第一行含有列标题”选项,以免导入向导将表格第一排的标题也当做数据导入进来。点击“下一步”按钮
第六步:分别选择每一个数据列,并指定导入数据库后的数据类型。中文部分建议设置为“文本”,数字部分可以设置为“整数型”或“双精度型”。然后点击“下一步”按钮
第七步:接下来为数据表设置主键。主键是数据库中一种特殊的列,列的内容是一组自动增长的数字,如果没有实际的需要,我们选择“不要主键”并点击“下一步”按钮。
第八步:为即将生成的新标取一个名字。例如“学生成绩数据”,并点击“完成”按钮,结束导入。
Ⅸ 如何将数据库文件导入数据库中
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。