如何做一个完整的网站数据获取,并写入到sqlite数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何做一个完整的网站数据获取,并写入到sqlite数据库相关的知识,希望对你有一定的参考价值。
参考技术A 将这个数据库
x.db
放到
手机sd
卡里面,然后
用eclipse
写个
类
基于
sqllite
db
help
的子类
写一些操作数据库的方法,然后
在activity
里面
定义个
listview
,调用
数据库类中的数据显示到list
view
里面,ok
,发布
运行 参考技术B 创建数据库
选择开始菜单中→程序→【Management
SQL
Server
2008】→【SQL
Server
Management
Studio】命令,打开【SQL
Server
Management
Studio】窗口,并使用Windows或
SQL
Server身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。
执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
使用NPOI读取Excel数据并写入SQLite
首先,我们来建一个数据库,我们就叫Hello.db(不一定是db后缀,你可以sqlite,sqlite3,db3)都可以作为识别,然后往里面建一个空的表格,如下图所示
然后建一个Excel表格,往表格里面写入一些数据,我这里只是Demo形式,可以根据自己的实际情况,稍作修改
然后开始建一个新的项目,我这里用的是WPF,你可以使用Core,Console,Winform都可以,我这里提供思路,仅供参考
然后引用一下图中的dll程序集,主要是SQLite和NPOI,你可以到Nuget去下载,Nuget命令,都可以达到目的,请随意
然后我们来写一下用户界面的代码
<Grid> <Button Content="ExcelToSQLite" Height="100" Width="200" Name="Import" Click="Import_Click"/> </Grid>
再来看看后端的代码如下图
//数据库连接 SQLiteConnection SQLiteConnections; public MainWindow() { InitializeComponent(); SQLiteConnections = new SQLiteConnection("Data Source=Hello.db;Version=3;"); SQLiteConnections.Open(); }
然后写一下Button的事件
private void Import_Click(object sender, RoutedEventArgs e) { OpenFileDialog openfiledialog = new OpenFileDialog(); openfiledialog.Filter = "*.xls|*.xls|*.xlsx|*.xlsx"; if (openfiledialog.ShowDialog() == true) { string name = openfiledialog.FileName; ImportExcel(name); } }
再下来写NPOI读取Excel的方法,然后再Button 事件里面调用即可,你也可以自己封装一下代码
public DataTable ImportExcel(string filePath) { DataTable dt = new DataTable(); using (FileStream fsRead = System.IO.File.OpenRead(filePath)) { IWorkbook wk = null; //获取后缀名 string extension = filePath.Substring(filePath.LastIndexOf(".")).ToString().ToLower(); //判断是否是excel文件 if (extension == ".xlsx" || extension == ".xls") { //判断excel的版本 if (extension == ".xlsx") { wk = new XSSFWorkbook(fsRead); } else { wk = new HSSFWorkbook(fsRead); } //获取第一个sheet ISheet sheet = wk.GetSheetAt(0); //获取第一行 IRow headrow = sheet.GetRow(0); //创建列 for (int i = headrow.FirstCellNum; i < headrow.Cells.Count; i++) { DataColumn datacolum = new DataColumn("F" + (i + 1)); dt.Columns.Add(datacolum); } //读取每行,从第二行起 for (int r = 1; r <= sheet.LastRowNum; r++) { bool result = false; DataRow dr = dt.NewRow(); //获取当前行 IRow row = sheet.GetRow(r); //读取每列 for (int j = 0; j < row.Cells.Count; j++) { ICell cell = row.GetCell(j); //一个单元格 dr[j] = GetCellValue(cell); //获取单元格的值 //全为空则不取 if (dr[j].ToString() != "") { result = true; } } if (result == true) { dt.Rows.Add(dr); //把每行追加到DataTable } } } } int a = dt.Rows.Count; int b = dt.Columns.Count; for (int i = 0; i < dt.Rows.Count; i++) { string c = dt.Rows[0][1].ToString(); string sql = "insert into Student (Name,Class,Age,Sex) values(\'" + dt.Rows[i][0].ToString() + "\',\'" + dt.Rows[i][1].ToString() + "\',\'" + dt.Rows[i][2].ToString() + "\',\'" + dt.Rows[i][3].ToString() + "\')"; SQLiteCommand command = new SQLiteCommand(sql, SQLiteConnections); command.ExecuteNonQuery(); } MessageBox.Show("导入成功"); return dt; }
在下来我们来检查一下每个表格的数据方法,如下图
private static string GetCellValue(ICell cell) { if (cell == null) return string.Empty; switch (cell.CellType) { case CellType.Blank: //空数据类型 这里类型注意一下,不同版本NPOI大小写可能不一样,有的版本是Blank(首字母大写) return string.Empty; case CellType.Boolean: //bool类型 return cell.BooleanCellValue.ToString(); case CellType.Error: return cell.ErrorCellValue.ToString(); case CellType.Numeric: //数字类型 if (HSSFDateUtil.IsCellDateFormatted(cell))//日期类型 { return cell.DateCellValue.ToString(); } else //其它数字 { return cell.NumericCellValue.ToString(); } case CellType.Unknown: //无法识别类型 default: //默认类型 return cell.ToString();// case CellType.String: //string 类型 return cell.StringCellValue; case CellType.Formula: //带公式类型 try { HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(cell.Sheet.Workbook); e.EvaluateInCell(cell); return cell.ToString(); } catch { return cell.NumericCellValue.ToString(); } } }
到这里我们的代码就写完了,我们来运行一下,看看效果怎么样
选择我们事先写好的Excel表格,选择它,然后点击打开的按钮
有提示成功了。
你以为到这里就结束了吗?不是的,这是程序提示成功了而已,那我们去看看SQLite数据看看有没有数据,记得开始的时候我们的SQLite是没有数据的,现在我们打开看看
到现在为止,整个流程就结束了,因为Excel的数据完全的导入到了SQLite数据库中,我们的目的达到了。感谢您的欣赏!
以上是关于如何做一个完整的网站数据获取,并写入到sqlite数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 和 SQLite3 写入 .txt 文件
如何从mysql中获取数据并存储在android的Sqlite数据库中
如何从 SQLite 数据库中获取数据并在 EditText 中显示