Visual Studio 2010中OLE连接数据库绑定GridView未显示内容的问题
解决Visual Studio 2010中SQL Server本地数据库访问失败的问题
问题核心原因
你的代码用错了数据库驱动:Microsoft.ACE.OLEDB.12.0是Access数据库的驱动,根本不支持SQL Server的.mdf格式,这是导致数据无法读取的关键错误。另外还存在连接字符串格式错误、资源管理不规范的问题。
修正后的代码
替换OleDb相关类为SqlClient(你已引用该命名空间),使用SQL Server本地数据库的正确连接字符串,并用using语句自动管理资源:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Configuration; namespace WebApplication16 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 适配Visual Studio 2010的LocalDB连接字符串 string connStr = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + Server.MapPath("App_Data/Database1.mdf") + ";Integrated Security=True"; // using语句自动释放连接和命令资源,避免泄漏 using (SqlConnection conn = new SqlConnection(connStr)) { string sql = "SELECT * FROM Emp"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { conn.Open(); // 用DataTable存储数据,避免DataReader连接态导致的绑定失效问题 System.Data.DataTable dt = new System.Data.DataTable(); dt.Load(cmd.ExecuteReader()); GridView1.DataSource = dt; GridView1.DataBind(); } } } } } }
额外检查要点
- 确认
App_Data文件夹下确实存在Database1.mdf,且库内有Emp表 - 确保数据库文件未被其他进程锁定(比如SQL Server Management Studio正连接该库)
- Visual Studio 2010对应的LocalDB版本是v11.0,连接字符串中的版本号需匹配
内容的提问来源于stack exchange,提问作者laith
相关产品推荐
相关产品推荐

