F#连接到在线MySQL数据库执行查询
我正在做一个F#项目,需要对在线mysql数据库进行一些数据库查询。谁能帮帮我吗。我需要这样的东西F#连接到在线MySQL数据库执行查询,mysql,sql,database,f#,connect,Mysql,Sql,Database,F#,Connect,我正在做一个F#项目,需要对在线mysql数据库进行一些数据库查询。谁能帮帮我吗。我需要这样的东西 \\ Connect to DB let servername = "localhost" let username = "username" let password = "password" \\ Code that connects to db \\ Print error message if can connect \\ Qu
\\ Connect to DB
let servername = "localhost"
let username = "username"
let password = "password"
\\ Code that connects to db
\\ Print error message if can connect
\\ Query
let query = "SELECT * FROM table ..."
\\ Code that executes query
\\ Error Message if query not executed
您应该为MySQL安装.NET驱动程序。然后安装SQLprovider。文档中有MySQL的示例。您将连接到数据库并按如下方式查询它:
type sql = SqlDataProvider<
dbVendor,
connString,
ResolutionPath = resPath,
IndividualsAmount = indivAmount,
UseOptionTypes = useOptTypes,
Owner = "HR"
>
let ctx = sql.GetDataContext()
let employees =
ctx.Hr.Employees
|> Seq.map (fun e -> e.ColumnValues |> Seq.toList)
|> Seq.toList
[<Literal>]
let connString = "Server=localhost;Database=HR;User=root;Password=password"
您还应该阅读我还想说的是,这是一种方法,因为您有一个针对数据库的逻辑验证,您会注意到数据库是否发生了更改
但是,如果您想:
// Reference Nuget package MySql.Data
//#r @"./../packages/MySql.Data/lib/net40/MySql.Data.dll"
open System
open MySql.Data.MySqlClient
let cstr = "server = localhost; database = myDatabase; uid = username;pwd = password"
let ExecuteSqlAsync (query : string) parameters =
use rawSqlConnection = new MySqlConnection(cstr)
async {
do! rawSqlConnection.OpenAsync() |> Async.AwaitIAsyncResult |> Async.Ignore
use command = new MySqlCommand(query, rawSqlConnection)
parameters |> List.iter(fun (par:string*string) -> command.Parameters.AddWithValue(par) |> ignore)
let! affectedRows = command.ExecuteNonQueryAsync() |> Async.AwaitTask
match affectedRows with
| 0 -> "ExecuteSql 0 rows affected: " + query |> Console.WriteLine
()
| x -> ()
}
let ExecuteSql (query : string) parameters =
use rawSqlConnection = new MySqlConnection(cstr)
rawSqlConnection.Open()
use command = new MySqlCommand(query, rawSqlConnection)
parameters |> List.iter(fun (par:string*string) -> command.Parameters.AddWithValue(par) |> ignore)
let affectedRows = command.ExecuteNonQuery()
match affectedRows with
| 0 -> "ExecuteSql 0 rows affected: " + query |> Console.WriteLine
()
| x -> ()
sqlprovider将允许您连接到MySQL。你所说的在线mysql数据库是什么意思?数据库在web服务器上,就像web主机一样,而不是像Wamp一样的本地数据库。Wamp是什么?如果您知道主机名并能够解析它,您应该仍然能够连接。几乎所有的数据库都在某台服务器上。你有错误吗?你的问题解决了吗?