C#链接Excel , sql

来源:互联网 发布:航模电调编程 编辑:程序博客网 时间:2024/05/16 13:03

这是以我课程设计为背景写哒博客。

先用火车采集器把数据从相应网站上爬下来,(电商网站一般都不让爬,所以网站选择比较困难),我做的项目是旅游调查,所以我爬了途牛。

然后爬下来之后右键项目有一个打开文件夹,有一个.db3文件,采集下来的数据都在这个文件里,但是这个文件需要下载特殊的软件才能打开,一般是用sqlite,我用的database。(打开之后是左边一列的目录,要自己用查询语句写内容的)


然后就可以全选表格导出到Excel了,默认文件名为Content.xlse。

然后打开VS2013,新建一个C#的demo,简单布局一下。(我要实现的是,输入出发地和目的地,点击查询可以在下面列表获得相应的旅游线路)


C#链接Excel的主要代码:

(其中

string strConnect = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + excelFilePath + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; 
这个要看具体的版本,还有可能是缺损了一个安装包,可以百度一下报错的信息,就可以下载那个安装包了)

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OleDb;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace demo{    public partial class Form1 : Form    {        string excelFilePath = "Content.xlsx";        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {        }        public DataTable readExcel(string excelFilePath)        {            try            {                string strConnect = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + excelFilePath + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";                             OleDbConnection oleDbConnect = new OleDbConnection(strConnect);                oleDbConnect.Open();                string sql = "SELECT * FROM [Sheet1$] WHERE 出发地 = '" + textBoxStart.Text + "'AND 目的地='" + textBoxEnd.Text + "'";                OleDbDataAdapter oleDaExcel = new OleDbDataAdapter(sql, oleDbConnect);                DataSet oleDsExcel = new DataSet();                oleDaExcel.Fill(oleDsExcel, "Sheet1");                oleDbConnect.Close();                return oleDsExcel.Tables["Sheet1"];            }            catch (Exception e)            {                MessageBox.Show("数据绑定Excel失败,失败原因:" + e.Message);                return null;            }        }        public void selectExcel()        {            try            {                if (textBoxStart.Text != "" )                {                    DataTable dt;                    dt = readExcel(excelFilePath);                    dataGridView1.DataSource = dt;                }            }            catch (System.Exception ex)            {                MessageBox.Show("数据筛选Excel失败,失败原因:" + ex.Message);            }        }        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)        {            selectExcel();        }        private void buttonOK_Click(object sender, EventArgs e)        {            OpenFileDialog openExcel = new OpenFileDialog();            openExcel.InitialDirectory = @"";            openExcel.Filter = "Excel文件|*.xlsx|Excel文件|*.xls";            openExcel.Title = "打开Excel文件";            if (openExcel.ShowDialog() == DialogResult.OK)            {                excelFilePath = openExcel.FileName;//获得文件的全路径                DataTable dt;                dt = readExcel(excelFilePath);                dataGridView1.DataSource = dt;            }            else            {                MessageBox.Show("Excel 文件读取失败 ");            }        }    }}

然后用sql链接C#,这个代码比Excel简单多了,但是问题在于sql本身的配置,我的sql是2016的,一开始不作任何处理时,C#报错是“访问服务器失败,请打开远程连接balabala...”,然后我百度了一下要打开很多东西。

先找到配置管理器,把所有协议都启用。(客户端协议,SQLEXPRESS的协议,客户端协议都要)


C#链接数据库主要代码:

(其中

String connsql = "server=服务器名称;database=数据库名称;integrated security=SSPI";

 private void buttonOK_Click(object sender, EventArgs e)        {            String connsql = "server=DESKTOP-9DAE121\\SQLEXPRESS;database=lzy;integrated security=SSPI"; // 数据库连接字符串,database设置为自己的数据库名,以Windows身份验证                        try            {                using (SqlConnection conn = new SqlConnection())                {                    conn.ConnectionString = connsql;                    conn.Open(); // 打开数据库连接                    string sql = "SELECT * FROM travel WHERE 出发地 = '" + textBoxStart.Text + "'AND 目的地='" + textBoxEnd.Text + "'"; // 查询语句                    SqlDataAdapter myda = new SqlDataAdapter(sql, conn); // 实例化适配器                    DataTable dt = new DataTable(); // 实例化数据表                    myda.Fill(dt); // 保存数据                     dataGridView1.DataSource = dt; // 设置到DataGridView中                    conn.Close(); // 关闭数据库连接                }            }            catch (Exception ex)            {                MessageBox.Show("错误信息:" + ex.Message, "出现错误");            }        }

※ 我sql的数据是用Excel导入的,具体步骤如下:

1.先在sql里新建表,输入变量,(和Excel第一行的列标题相同)


2.右键数据库-任务-导入数据,然后会有一系列的指导操作。

这里选择Excel版本,可能会缺损安装包,和之前Excel导入到C#的时候一样。


3.下一步,选择导入到数据库。


4.下一步


5.勾选要导入的表,然后点击预览就可以看到啦。



以上就是所有步骤啦,C#完成后的效果还是挺好的。



原创粉丝点击