You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:45:02