1. 程式人生 > >C# 讀取數據,顯示再dataggrideView上。 先用excel,後用sqlite3。

C# 讀取數據,顯示再dataggrideView上。 先用excel,後用sqlite3。

.dll xls data 讀取 沒有 adapter .net sqlite3 ted

最近在做一個訂單管理的軟件,考慮直接讀取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。