[英]F# and ADO.NET to Connect To Access 2007
我是F#的新手,我試圖找到使用System.Data.OleDb連接到Access 2007的最簡單方法。 我已經使用C#完成了此操作,但是我不知道如何將語法轉換為F#。 以下是我到目前為止所知道的:
#light
open System.Windows.Forms
open System.Data.OleDb
open System.Data
let ADOCon = new OleDbConnection()
let DTab = new DataTable()
ADOCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\...mdb"
我知道連接字符串的語法錯誤,並且我不知道如何添加OleDataAdapter和OleCommandBuilder。 有誰知道從#light到打開連接的簡單示例? 先感謝您!
但這不是F#的處理方式,但這可行...
open System.Data
open System.Data.OleDb
let cmd = new OleDbCommand( "SELECT * FROM TABLE1" );
let conn = new OleDbConnection( @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Temp\Database1.mdb;Persist Security Info=False;" )
conn.Open();
cmd.Connection <- conn;
using (cmd.ExecuteReader())
(fun reader ->
if (reader.HasRows) then
(
printfn "Queried: %s" cmd.CommandText
while (reader.Read()) do
(
let id = reader.GetInt32(0)
let tmp = reader.GetString(1)
printfn "%d %s" id tmp
)
done
)
else (printfn "Empty result")
)
conn.Close();
;;
如果顯示相應的C#,則可能會有所幫助。
假設您嘗試在最后一行分配屬性,則需要“ <-”:
ADOCon.ConnectionString <- "yadda"
我最終編譯了一些代碼,以從Winform中讀取F#中的Access 2007 Db:
open System.Data.OleDb
open System.Data
//Create winform//
let frmMain = new Form()
//Connect to Access Db//
let ADOCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\Users\...\Desktop\FSharpDb.mdb")
let DAdapter = new OleDbDataAdapter("Select * from Names_Table", ADOCon)
let DTable = new DataTable()
DAdapter.Fill(DTable)|>ignore
let view = new DataGridView()
do view.DataSource <- DTable
let ConnectionString =
ADOCon.Open()
frmMain.Controls.Add(view)
//Run main form on start up
Application.Run(frmMain)
感謝您的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.