c#操作DBF資料庫檔案

來源:互聯網
上載者:User

剛來一個新的學校,學校裡管理資料都是用的DBF。。這讓我內牛滿面,於是乎,管理學產生績的任務便落到了我這個搞.NET的童鞋身上了。上網查了下c#操作DBF的文章,不是很多種辦法就是講的不清不楚,我通過http://www.connectionstrings.com/dbf-foxpro上的提示,成功搞定了對DBF的操作,現在來跟大家分享下~

 

字串:string connectString = string.Format(

                "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=dBASE IV;User ID=Admin;Password=;"

                ,dbfPath);

 

dbfPath:你存放DBF檔案的那個檔案夾


注意:你只需要改那個dbfPath即可,其他的都不用改。

 

原理:c#操作DBF的時候,會把你剛選擇的檔案夾當成是一個資料庫,而這個另類的“資料庫“裡的各個DBF檔案的名字(不包括副檔名)便是它的表了。

 

代碼示範:(form裡有兩個button,一個combobox)

 

 

using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Text;<br />using System.Windows.Forms;<br />using System.Data.OleDb;<br />using System.Data.Sql;<br />using System.IO;<br />namespace cs_control_dbf_folder<br />{<br /> public partial class Form1 : Form<br /> {<br /> string dbfPath = string.Empty;<br /> public Form1()<br /> {<br /> InitializeComponent();<br /> }<br /> private void button1_Click(object sender, EventArgs e)<br /> {<br /> if(string.IsNullOrEmpty(dbfPath))<br /> {<br /> MessageBox.Show("還沒選擇檔案夾!");<br /> return;<br /> }<br /> if (string.IsNullOrEmpty(comboBox1.Text))<br /> {<br /> MessageBox.Show("沒有選擇資料檔案");<br /> return;<br /> }<br /> string connectString = string.Format(<br /> "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=dBASE IV;User ID=Admin;Password=;"<br /> , dbfPath);<br /> using (OleDbConnection connection = new OleDbConnection(connectString))<br /> {<br /> DataSet ds = new DataSet();<br /> try<br /> {<br /> connection.Open();<br /> OleDbDataAdapter command = new OleDbDataAdapter("select * from "+comboBox1.Text, connection);<br /> command.Fill(ds, "ds");<br /> MessageBox.Show(ds.Tables[0].Rows.Count.ToString());<br /> }<br /> catch(Exception ex)<br /> {<br /> MessageBox.Show(string.Format("error:{0}", ex.Message));<br /> }<br /> }<br /> }<br /> private void button2_Click(object sender, EventArgs e)<br /> {<br /> if (folderBrowserDialog1.ShowDialog() == DialogResult.Cancel)<br /> return;<br /> dbfPath = folderBrowserDialog1.SelectedPath;<br /> DirectoryInfo di = new DirectoryInfo(dbfPath);<br /> comboBox1.Items.Clear();<br /> foreach (FileInfo fi in di.GetFiles())<br /> {<br /> if(fi.Extension.ToLower()==".dbf")<br /> this.comboBox1.Items.Add(fi.Name.Substring(0,fi.Name.LastIndexOf(fi.Extension)));<br /> }<br /> if (comboBox1.Items.Count == 0)<br /> {<br /> MessageBox.Show("此檔案夾中沒有資料檔案,請確認");<br /> }<br /> else<br /> {<br /> comboBox1.SelectedIndex = 0;<br /> }<br /> }<br /> }<br />}<br /> 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.