首页 > 代码库 > C# 读取数据,显示再dataggrideView上。 先用excel,后用sqlite3。

C# 读取数据,显示再dataggrideView上。 先用excel,后用sqlite3。

最近在做一个订单管理的软件,考虑直接读取excel,然后把数据显示在datagridView上。,然后使用NPOI操作excel。 

 1 string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=‘Excel 12.0;HDR=YES;IMEX=0‘";
 2 //string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:/成绩表2013.xlsx;Extended Properties=‘Excel 12.0;HDR=YES;IMEX=0‘";
 3 OleDbConnection myConn = new OleDbConnection(strCon);
 4 string sSelect = "SELECT * FROM [Sheet1$]";
 5 myConn.Open();
 6 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(sSelect, myConn);
 7 DataSet myDataSet = new DataSet();
 8 myDataAdapter.Fill(myDataSet);//, "[Sheet1$]");
 9 myConn.Close();
10 dataGridView_items.DataSource = myDataSet.Tables[0].DefaultView; //显示到datagridview

 

该方法效率很慢,显示数据会一行一行刷出来,不可用。 后来选择使用轻量级sqlite3:

在官网下载相关的dll:https://www.sqlite.org/download.html      下载项如下

技术分享

.Net工具:

技术分享

 

 

加载sqlite

using System.Data.SQLite;
using System.Data.SqlClient;

使用:

注意使用try,catch, 否则会显示不出来数据并且不抱错。try catch之后会发现不能加载SQLite.Interop.dll。。 需要把该dll放到项目路径下,然后设置属性 复制到输出值:始终复制:

技术分享

 

if (File.Exists(path))
            {
                try
                {
                    SQLiteConnection conn = new SQLiteConnection("Data Source = " + path);
                    conn.Open();
                    SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter("Select * from 商品", conn);
                    DataSet ds = new DataSet();
                    dataAdapter.Fill(ds);
                    dataGridView_items.DataSource = ds.Tables[0];
                    conn.Close();
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show("没有找到相关数据库");
            }

 

C# 读取数据,显示再dataggrideView上。 先用excel,后用sqlite3。