以console winform為例
1.先在 App.config 寫好參數 (密碼不建議寫在這)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings>
<add key="DataSource" value="192.168.??.??"/>
<add key="DataBaseCatalog" value="xxDB"/>
<add key="DataBaseUser" value="xxDBAdmin"/>
<add key="DataBasePassword" value="myPwd"/>
<add key="EmailServer" value="192.168.??.??"/>
<add key="EmailFrom" value="yourmail@company.com.tw"/>
<add key="EmailFromDisplayName" value="SystemManager"/>
</appSettings>
</configuration>2.方案總管 > 參考 > 加入參考 > 找一下,勾選 System.Configuartion > 確認

3.去網上下載Dapper.dll,將其加入參考,可能會查到三個版(2.0 / 4.0 / 5.0),這邊因 Framework 是4.x,所以加入 dapper 4.0的。 (有錯請指正)
就可以使用簡易的SQL語法了。
//部分程式片段 - 示範Query
queryStr = "SELECT EmployeeNo, EmployeeName, Email FROM Employee WITH (NOLOCK) WHERE Email IS NOT NULL";
List<Employee> empList = con.Query<Employee>(queryStr).ToList();4.以下完整範例
//SqlHelper.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Dapper;
using System.Configuration;
namespace SendMail
{
class SqlHelper
{
private string DataSourceValue = ConfigurationManager.AppSettings["DataSource"]; // 記錄資料庫位置
private string DataBaseCatalogValue = ConfigurationManager.AppSettings["DataBaseCatalog"]; // 記錄資料庫名稱
private string DataBaseUserValue = ConfigurationManager.AppSettings["DataBaseUser"]; // 記錄資料庫使用者名稱
private string DataBasePasswordValue = ConfigurationManager.AppSettings["DataBasePassword"];
/// <summary>
/// 取得MSSQL 連線字串
/// </summary>
/// <returns></returns>
public string getConnectionBuilderString()
{
StringBuilder ConnectionBuilder = new StringBuilder();
ConnectionBuilder.AppendLine("Data Source=" + DataSourceValue + ";");
ConnectionBuilder.AppendLine("Pooling=False;");
ConnectionBuilder.AppendLine("Max Pool Size = 1024;");
ConnectionBuilder.AppendLine("Initial Catalog=" + DataBaseCatalogValue + ";");
ConnectionBuilder.AppendLine("Persist Security Info=True;");
ConnectionBuilder.AppendLine("User ID=" + DataBaseUserValue + ";");
ConnectionBuilder.AppendLine("Password=" + DataBasePasswordValue);
string connectionString = ConnectionBuilder.ToString();
return connectionString.ToString();
}
}
}//Class_DataTable.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SendMail
{
internal class Employee
{
public string EmployeeNo { get; set; }
public string EmployeeName { get; set; }
public string Email { get; set; }
}
}//Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Data.SqlClient;
using Dapper;
namespace SendMail
{
internal class Program
{
static void Main(string[] args)
{
List<Employee> tbl;
queryMailList(out tbl);
}
/// <summary>
/// 取得 Employee 資料表內容
/// </summary>
/// <returns></returns>
static void queryMailList(out List<Employee> tbl)
{
SqlHelper sqlHelper = new SqlHelper();
string connectionString = sqlHelper.getConnectionBuilderString();
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
string queryStr;
queryStr = "SELECT EmployeeNo, EmployeeName, Email FROM Employee WITH (NOLOCK) WHERE Email IS NOT NULL";
var tmp = con.Query<Employee>(queryStr).ToList();
tbl= con.Query<Employee>(queryStr).ToList();
con.Close();
}
}
}
}PS.速記,可能會有小BUG,還請海含指教,感謝..