WebForm 頁面調用 DB.GetDataTableBySql(sql) 報錯「未找到方法」,需在 DB 類中正確實現該靜態方法。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public static class DB
{
// 從 Web.config 讀取連接字符串
private static readonly string strConn =
ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
///
/// 執行查詢返回 DataTable
///
public static DataTable GetDataTableBySql(string strSQL)
{
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection(strConn))
{
using (SqlDataAdapter da = new SqlDataAdapter(strSQL, conn))
{
da.Fill(dt);
}
}
return dt;
}
///
/// 執行增刪改返回影響行數
///
public static int ExecuteNonQuery(string strSQL, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
using (SqlCommand cmd = new SqlCommand(strSQL, conn))
{
if (parameters != null) cmd.Parameters.AddRange(parameters);
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}
}
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=.;Initial Catalog=MyDB;User ID=sa;Password=123456;"
providerName="System.Data.SqlClient" />
</connectionStrings>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string sql = "SELECT * FROM Books";
DataTable dt = DB.GetDataTableBySql(sql);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
public staticusing 確保連接釋放