Visual Studio 2017和2019 SqlDataSource“无法连接-对象引用未设置为对象的实例”

时间:2019-04-25 02:25:14

标签: c# html mysql gridview sqldatasource

我正在为研究生班设计一个项目,需要使用gridview从mysql填充数据,然后填充链接以编辑和删除所述数据。我似乎无法在线找到该问题的答案。通过向导测试了连接字符串,连接成功。

我曾尝试按照其他帖子的建议降级版本。我安装了Visual Studio 2017,因为我认为可能不支持2019。但是,无论我做什么,对于C#和html网站,都会通过sqldatasoure向导遇到相同的错误“无法连接-对象引用未设置为对象的实例”。

我认为经过数小时的调试,这可能只是我的项目,但是当我用一个网页创建一个空项目时,我遇到了同样的错误。

这与null异常不同,因为我认为它是相对于带有net连接器的mysql和visual studio本身,而不是null对象。我认为mysql插件扩展有问题。

网页:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
        </div>

<asp:gridview runat="server"></asp:gridview>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:starssparksConnectionString %>" ProviderName="<%$ ConnectionStrings:starssparksConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [cart]"></asp:SqlDataSource>
    </form>
</body>
</html>

网页aspx:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

Web.config:

<?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>

    <connectionStrings>
        <add name="starssparksConnectionString" connectionString="server=localhost;user id=root;password=PASSWORD;persistsecurityinfo=True;database=starssparks"
            providerName="MySql.Data.MySqlClient" />
    </connectionStrings>
    <system.web>
      <compilation debug="true" targetFramework="4.6.1"/>
      <httpRuntime targetFramework="4.6.1"/>
    </system.web>
    <system.codedom>
        <compilers>
            <compiler language="c#;cs;csharp" extension=".cs"
                type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
            <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
                type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
        </compilers>
    </system.codedom>

</configuration>

1 个答案:

答案 0 :(得分:0)

卸载Visual Studio的mySQL并仅使用连接字符串可解决此问题。用于Visual Studio的mySQL中的连接器引起了连接问题。