C# 讀取數據,顯示再dataggrideView上。 先用excel,後用sqlite3。
阿新 • • 發佈:2017-08-07
.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。