几个数据库的小案例(一):将文本文件中的信息导入数据库的表中

从文本文件添加到数据库用户表的记录(有两个文件:frmMain.cs  SqlHelper.cs  )


//FrmMain.cs
//作者:Me
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;

namespace 数据库的链接
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btnOpenFile_Click(object sender, EventArgs e)
{
#region 写一个程序,要求:uName和uPass从文件导入,并将其插入到数据库WebSite的UserInfo表中
//打开文件对话框
OpenFileDialog ofd = new OpenFileDialog();

//指定ofd的过滤器
ofd.Filter = "文本文件|*.txt|所有文件|*.*";
//指定ofd的是否多选择属性
ofd.Multiselect = false;
//指定ofd的初始化目录
ofd.InitialDirectory = @"D:\";
//指定ofd的标题
ofd.Title = "请选择要打开的文本文件";

if (ofd.ShowDialog() == DialogResult.OK)
{
txtFileName.Text = ofd.FileName;
}

#endregion
}
/// <summary>
/// 需求增加
/// 1.增加一个导入成功后弹出的统计对话框
/// 2.增加判断如果,用户选择的是一个非法的文本文件,那么让Insert方法返回false
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnImportData_Click(object sender, EventArgs e)
{
//判断文本框是否有值 并且 文件是否存在 并且 值是否为一个txt文件的路径
if (String.IsNullOrEmpty(txtFileName.Text)
|| !File.Exists(txtFileName.Text)
|| !String.Equals(txtFileName.Text.Split(‘.‘)[txtFileName.Text.Split(‘.‘).Length - 1], "txt"))
{
MessageBox.Show("文件错误,请重新导入!");
return;
}

//读取文本文件的数据,并循环导入
string[] allLines = File.ReadAllLines(txtFileName.Text.Trim(), Encoding.Default);
//定义一个判断是否全部导入的计数器
int totalNumber = allLines.Length;
int hasImportedNumber = 0;

foreach (string str in allLines)
{
string[] eachLinesArray = str.Split(‘|‘);

//传入要插入的用户名和密码
if (str.IndexOf(‘|‘) != -1)
{
//eachLines{string[1]} 表示的是eachLines是一个长度为1的字符串数组(也就是说只有eachLines[1]的位置有值)
if (SqlHelper.Insert(eachLinesArray[0], eachLinesArray[1]))
{
hasImportedNumber++;
}
}
}

MessageBox.Show(String.Format("总共:{0}条\n成功导入:{1}条\n成功率:{2}%\n", totalNumber, hasImportedNumber, hasImportedNumber/(float)totalNumber*100));

}

private void btnOutPut_Click(object sender, EventArgs e)
{
//创建保存文本框对象
SaveFileDialog sfd = new SaveFileDialog();

//设置默认的保存格式,这里只有txt
sfd.Filter = "文本文件(*.txt)|*.txt";
//设置标题
sfd.Title = "请选择要保存的文件";

//当点击确定,获取路径
if (sfd.ShowDialog() == DialogResult.OK)
{
//创建一个空的泛型集合
List<string> list = new List<string>();
//使用查询函数将查询结果添加到泛型集合中
SqlHelper.DataSelect(list);
//将泛型集合的数组写入文件
File.WriteAllLines(sfd.FileName, list);
}

}
}

}


//SqlHelper.cs
//作者:Me
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace 数据库的链接
{
/// <summary>
/// SqlHelper用于执行数据库增删改查的操作
/// </summary>
class SqlHelper
{
private static string sqlStr = "server=.;database=WebSite;uid=sa;pwd=123456";

/// <summary>
/// 向数据库插入记录
/// </summary>
/// <param name="name">待插入用户名</param>
/// <param name="pass">待插入密码</param>
/// <returns></returns>
public static bool Insert(string name, string pass)
{
using (SqlConnection conn = new SqlConnection(sqlStr))
{
using (SqlCommand cmd = conn.CreateCommand())
{
bool res = false;
cmd.CommandText = "insert UserInfo values (@name, @pass)";
cmd.Parameters.Add(new SqlParameter("@name", name));
cmd.Parameters.Add(new SqlParameter("@pass", pass));

try
{
conn.Open();
res = cmd.ExecuteNonQuery() > 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);

}

return res;
}

}
}

public static void DataSelect(List<string> list)
{
using (SqlConnection conn = new SqlConnection(sqlStr))
{
using (SqlCommand cmd = conn.CreateCommand())
{
SqlDataReader dr = null;

cmd.CommandText = "select uName,uPass from UserInfo";
try
{
conn.Open();
dr = cmd.ExecuteReader();
}
catch (Exception ex)
{
MessageBox.Show("数据库错误:\n"+ex.Message);
return;
}

if (dr.HasRows)
{
while (dr.Read())
{
list.Add( String.Concat(dr[0].ToString(), "|", dr[1].ToString()) );
}
}

}
}

}
}
}

文本文件D:\user.txt ,内容:

张三1|123
张三2 123
张三3
123
张三4|123
张三5|123
张三6|123
张三7|123
张三8|123
张三9|123
张三10|123
张三11|123
张三12|123
张三13|123
张三14|123
张三15|123

思路简介

1.点击“打开文件”从openFileDialog打开一个文件,并将路径存到txtFileName文本框中

2.点击“导入数据”按钮,首先检查文本框文件路径字符串的合法性,然后在循环中使用Insert()将数据一条条插入到数据库中

3.Insert(string name,string
pass)方法,每调用一次,就将参数中的name和pass插到指定的数据表UserInfo中

4.点击“导出数据”,即打开SaveFileDialog,预先定义一个泛型集合,然后将集合的引用传递给DataSelect()方法,方法内部通过dr对象的遍历,将每行数据写入集合中

各种空间的命名和属性设置






















控件 属性 事件
btnOpenFile

Text:打开文件

btnOpenFile_Click
btnImportFile Text:导入数据 btnImportData_Click
btnOutPut Text:导出数据 btnOutPut_Click
txtFileName    

几个数据库的小案例(一):将文本文件中的信息导入数据库的表中,布布扣,bubuko.com

时间: 2024-10-25 13:12:02

几个数据库的小案例(一):将文本文件中的信息导入数据库的表中的相关文章

几个数据库的小案例(二):极其简单的省市联动

总用有两个文件(frmMain.cs SqlHelper.cs) //frmMain.cs//作者:Meusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 省市联动

Sqoop1.4.4将MySQL数据库表中数据导入到HBase表中

问题导读:         1.--hbase-table.--hbase-row-key.--column-family及--hbase-create-table参数的作用? 2.Sqoop将关系型数据库表中数据导入HBase中,默认Rowkey是什么? 3.如果关系型数据库表中存在多关键字,该怎么办? 一.简介及部分重要参数介绍 Sqoop除了能够将数据从关系型数据库导入到HDFS和Hive中,还能够导入到HBase表中. --hbase-table:通过指定--hbase-table参数值

几个数据库的小案例(三):用递归实现TreeView层级显示

从这个小案例我学到了不少知识.这些无论如何无法从书里得来.正所谓实践出真知,学习编程需要大量实践这句话永不过时. 首先:好的代码和坏的代码带来的性能上的差异很明显.好的策略可以让你的程序运行速度大大加快.而差的代码则能让你的程序直接卡死. 这是我写的递归填充TreeView: private void GetNode1(TreeNode tNod, int id) { using (SqlConnection conn = new SqlConnection("server=.\\sqlexpr

SpringMVC简单实现上传Excel文件,并将Excel中的数据导入数据库

第一步 配置DispathcherServlet文件 第二步 配置applicationContext文件 第三步 在index.jsp中 第四步 在HelloSpringmvc.java中写入方法 第五步:与数据库进行连接 第六步 mySQL实体类 第七步 操作excel表 第八步 Dao文件 第九步 测试

用Toad把excel中的数据导入数据库的表中

第1步:找到菜单选项 第2步:选择表名 第3步:选择文件类型为Excel 第4步:设置参数 在oracle中trim函数可以除去字符串前后的空格,所以选上. 第5步:把excel中的列和数据库中的字段对应起来.每一列对应一个字段. 第6步:查看约束 第7步:设置导入模式,我设置的时导入完成后不提交,手动提交. 点击Execute执行. 执行过程中: 出现以下错误,问到是否继续执行.这种错误一般是因为excel中的数据结构与数据库表中的数据类型不统一而引起的. 我点击的yes继续执行,中间可能还会

IOS小技巧——使用FMDB时如何把一个对像中的NSArray数组属性存到表中

http://blog.csdn.net/github_29614995/article/details/46797917 在开发的当中,往往碰到要将数据持久化的时候用到FMDB,但是碰到模型中的属性有数组,但是FMDB存放的属性通常只为Text,那我们改怎么办呢? 思路:1.创建一个表,先将模型的除数组以为的其他属性写入表中,名为t_groupBuyModel 2.创建一个表装载模型中的数组文本,名为t_images 3.当存入模型到表中的时候,遍历模型中的数组属性,让每一条数据都存入t_im

laravel5.4将excel表格中的信息导入到数据库中

1.首先在得有需要导入的文件,这个过程可以利用laravel中的文件上传功能完成, 详情可以参考laravel文档http://laravelacademy.org/post/6885.htm,这里不再多说文件上传 2.假定现在要导入到数据库的表格在 storage下面的test.xls public function daoru() { $filePath = 'storage/' . iconv('UTF-8', 'GBK', 'test') . '.xls'; $ret = []; Exc

Java 从数据库中查找信息导入Excel表格中

前端js function Excel (){ //ajax请求 $.ajax({ url : "outPutAboutShopInfo", type : "post", dataType : "json", data:{ "basicShop.shopId" : shopId, "basicShop.shopMemo" : stringType //不方便增加字段所以使用门店的一个"备注&quo

C#中联查的简单方法(如从数据库中获取到数据放到excel表中)

var path = new FileStream((Server.MapPath("~") + "Content\\data\\Cause\\事业单位管理人员基本情况.xls"), FileMode.Open, FileAccess.Read); var wb = new HSSFWorkbook(path); var shet = wb.GetSheet("page 1"); var chain = shet.Chain("D7&q