最近很多小伙伴都在问将CSV文件导入SQLServer和将csv文件导入mysql数据库这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展C#怎样才能将XML文件导入SQLServe
最近很多小伙伴都在问将CSV文件导入SQL Server和将csv文件导入mysql数据库这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展C#怎样才能将XML文件导入SQL Server、csv文件导入Sybase数据库、Java之利用openCsv将csv文件导入mysql数据库、php – 将csv文件导入mysql等相关知识,下面开始了哦!
本文目录一览:- 将CSV文件导入SQL Server(将csv文件导入mysql数据库)
- C#怎样才能将XML文件导入SQL Server
- csv文件导入Sybase数据库
- Java之利用openCsv将csv文件导入mysql数据库
- php – 将csv文件导入mysql
将CSV文件导入SQL Server(将csv文件导入mysql数据库)
我正在寻找使用导入.csv
文件到SQL Server
的帮助BULK INSERT
,我有几个基本问题。
问题:
-
CSV文件数据的
,
中间(例如:描述)之间可能有(逗号),那么如何进行导入处理这些数据? -
如果客户端从Excel创建CSV,则用逗号括起来的数据
""
(用双引号引起来)(如下例所示),那么导入如何处理呢? -
我们如何跟踪某些行是否包含不良数据,哪些导入会跳过?(导入会跳过不可导入的行)
这是带标题的CSV示例:
Name,Class,Subject,ExamDate,Mark,Description
Prabhat,4,Math,2/10/2013,25,Test data for prabhat.
Murari,5,Science,2/11/2013,24,"Test data for his's test,where we can test 2nd ROW,Test."
sanjay,Test Only.
和SQL语句导入:
BULK INSERT SchoolsTemp
FROM 'C:\CSVData\Schools.csv'
WITH
(
FIRSTROW = 2,FIELDTERMINATOR = ',',--CSV field delimiter
ROWTERMINATOR = '\n',--Use to shift the control to next row
TABLOCK
)
C#怎样才能将XML文件导入SQL Server
问:怎样才能将XML文件导入sql Server 2000?
答:将XML文件导入sql Server有若干种方法,这里提供其中的3种:
大容量装载COM接口。如果需要将文档的实体和属性析取到关系表中,最快的方法就是使用sql Server 2000 Extensible MarkuP Language 3.0 Service Pack 1(sqlXML 3.0 SP1)提供的大容量装载COM接口。大容量状态COM接口包含在sqlXML 3.0 SP1的免费下载中。
textcopy.exe命令行实用工具。如果不希望将文档的实体和属性析取到关系表中,您可以使用textcopy.exe命令行实用工具。Textcopy.exe是将文本和image数据类型从单一服务器行或列移入或移出的优秀工具。
数据转换服务(DTS)。如果XML文档很简单,您可以使用DTS将信息逐行析取到表中。这一方法要求您将XML文件定义为输入数据源,将数据库表定义为输出数据源,并编写ActiveX脚本剖析"<"和">"方式的字符输入,以析取实体、属性及其值。
要导入的Xml文件:
<?xml version="1.0" encoding="gb2312"?>
<Tbl_UpdateLogs>
<Table>
<id>32</id>
<title>新增执法机构页面</title>
<content>qqqqqq</content>
<module>组织机构</module>
<updateTime>2009-07-31T00:00:00+08:00</updateTime>
<operator>王永刚</operator>
</Table>
<Table>
<id>33</id>
<title>执法人员资格页面</title>
<content>大幅度放到大幅度放到</content>
<module>组织机构</module>
<updateTime>2009-07-29T00:00:00+08:00</updateTime>
<operator>王永刚</operator>
</Table>
<Table>
<id>34</id>
<title>111111</title>
<content>dfdwdd</content>
<module>qwqwq</module>
<updateTime>2009-07-29T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
<Table>
<id>35</id>
<title>qq</title>
<content>fjdldldsss</content>
<module>qqqqqqq</module>
<updateTime>2009-07-30T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
<Table>
<id>36</id>
<title>2009222</title>
<content>ddddd</content>
<module>22</module>
<updateTime>2009-07-31T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
<Table>
<id>37</id>
<title>1234455</title>
<content>ddddddd</content>
<module>11111</module>
<updateTime>2009-07-31T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
</Tbl_UpdateLogs>
/// <summary>
/// 读取Xml文件,获得所有节点的Value值
/// </summary>
/// <param name="fileName">Xml文件名</param>
/// <param name="filePath">存放的路径</param>
/// <param name="rootName">Xml根节点名称</param>
/// <returns></returns>
public void ImportXmlFile(string fileName,string filePath,string rootName)
{
string loadpath = HttpContext.Current.Server.MapPath(filePath + fileName);
try
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(loadpath);
//获取根节点<rootName>的所有子节点
XmlNodeList myNodeList = xmldoc.SelectSingleNode(rootName).ChildNodes;
//遍历<根节点>的所有子节点
foreach (XmlNode myXmlNode in myNodeList)
{
XmlNodeList subNodeList = myXmlNode.ChildNodes;
UpdateLogs updateLog = new UpdateLogs();
foreach (XmlNode subXmlNode in subNodeList)
{
switch (subXmlNode.Name)
{
case "id": //节点的名称,加这个条件是因为<!---->这些节点也会被读出来
updateLog.ID = int.Parse(subXmlNode.InnerText.Trim());
break;
case "title":
updateLog.Title = subXmlNode.InnerText.Trim();
break;
case "content":
updateLog.Content = subXmlNode.InnerText.Trim();
break;
case "module":
updateLog.Module = subXmlNode.InnerText.Trim();
break;
case "updateTime":
updateLog.UpdateTime = DateTime.Parse(subXmlNode.InnerText.Trim());
break;
case "operator":
updateLog.Operator = subXmlNode.InnerText.Trim();
break;
default:
break;
}
}
if (isExstsById(updateLog.ID.ToString()))
{
UpdateLog(updateLog);
}
else
{
InsertLog(updateLog);
}
}
File.Delete(loadpath);
BindData();
ClientScript.RegisterStartupScript(typeof(string),"importLog","<script>alert('导入成功!');</script>");
}
catch (Exception ex)
{
ExceptionManager.Handle(ex);
}
}
csv文件导入Sybase数据库
csv文件批量插入sybase数据库
# -*- coding:utf-8 -*-import osimport pyodbcimport pandas as pdfrom math import ceilfrom pandas.api.types import is_datetime64_any_dtypefrom pandas.api.types import is_float_dtypefrom pandas.api.types import is_integer_dtypefrom pandas.api.types import is_object_dtypeclass CsvToSybase(object): def __init__(self, DSN, UID, pwd): # connect to sybase and get cursor try: self.conn = pyodbc.connect(''DSN={}; UID={}; pwd={}''.format(DSN, UID, pwd)) except Exception as e: print(e) self.cursor = self.conn.cursor() def read_csv(self, filename): # read csv file and make table name df = pd.read_csv(filename, keep_default_na=False, encoding=''utf-8'') table_name = ''['' + os.path.split(filename)[-1].split(''.'')[0].replace('' '', ''_'') + '']'' self.csv_to_sybase(table_name=table_name, df=df) def make_table_sql(self, df): # field type conversion columns = df.columns.tolist() types = df.ftypes make_table = [] make_field = [] for item in columns: item1 = ''['' + item.replace('' '', ''_'') + '']'' if is_integer_dtype(types[item]): char = item1 + '' INT'' elif is_float_dtype(types[item]): char = item1 + '' FLOAT'' elif is_object_dtype(types[item]): char = item1 + '' VARCHAR(255)'' elif is_datetime.........
Java之利用openCsv将csv文件导入mysql数据库
前两天干活儿的时候有个需求,前台导入csv文件,后台要做接收处理,mysql数据库中,项目用的springboot+Vue+mybatisPlus实现,下面详细记录一下实现流程。
1.Controller层部分:
/**
* 读取csv文件,批量插入到数据库中
*/
@RequestMapping("/importcsv")
@RequiresPermissions("xxx:xxxxx:xxx")
public R importCsv(@RequestParam("file") MultipartFile file) throws IOException, CsvException {
if (null == file) {
return R.error("上传文件为空");
}
List<xxxEntity> csvFileContentList = xxxService.getCsvFileContent(file);
boolean b = xxxService.saveBatch(csvFileContentList);
if (b) {
return R.ok("文件导入成功");
} else {
return R.ok("文件导入失败");
}
}
这里是先将前端传递过来的file交给getCsvFileContent方法处理,生成要批量插入的list,然后再用mybatisPlus做批量插入。
2.实现类部分:
@Override
public List<xxxEntity> getCsvFileContent(MultipartFile file) throws IOException, CsvException {
//读取csv文件
String charset = "GBK";
Reader reader = new InputStreamReader(file.getInputStream(), charset);
CSVReader csvReader = new CSVReader(reader);
csvReader.readNext();
List<String[]> csvList = csvReader.readAll();
List<xxxEntity> xxxList = new ArrayList<>();
xxxEntity xxx = null;
for(String[] csv : csvList){
xxx = new xxxEntity();
if(null != csv && csv.length != 0){
//这里是查询要入库的数据是不是在数据库中已存在
xxxEntity xxxx = findOneByxxxAndxxx(csv[0], csv[1]);
if (xxxx == null) {
xxx.setXxx(csv[0]);
xxx.setXxx(csv[1]);
xxx.setXxx(csv[2]);
}else {
continue;
}
}
xxxList.add(xxx);
}
return xxxList;
}
这里会将你前端发送过来的文件做读取后直接入库,不会生成中间文件,希望这篇文章能对你有帮助,有问题可以评论区交流哦。
php – 将csv文件导入mysql
我正在使用MySQL与PHP.通过PHP脚本我试图导入一个csv文件与以下查询
LOAD DATA LOCAL INFILE '$file'
INTO TABLE userstable
FIELDS TERMINATED BY ','
LInes TERMINATED BY '\n' IGnorE 1 LInes (name, univ, mobile);
我已成功将文件导入数据库表,但我能够看到
隐藏的格式符号(如word,powerpoint等)在最后一列下的所有单元格中,即移动.
如何避免插入表中
解决方法:
可能是DOS行结尾.
尝试一下
LInes TERMINATED BY '\r\n'
代替.
关于将CSV文件导入SQL Server和将csv文件导入mysql数据库的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于C#怎样才能将XML文件导入SQL Server、csv文件导入Sybase数据库、Java之利用openCsv将csv文件导入mysql数据库、php – 将csv文件导入mysql等相关内容,可以在本站寻找。
本文标签: