我正在尝试在Web配置文件中设置mysql连接。
这是连接字符串代码:
<connectionStrings>
<add name="connstring"
connectionString="DRIVER={MySQL ODBC= 3.51= Driver};Database=marctest;Server=localhost;UID=root;PWD=1234;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
我将在以下步骤中访问它:
MySqlConnection connmysql = new MySqlConnection(WebConfigurationManager.ConnectionStrings["connstring"].ConnectionString);
当我运行我的代码时,它会生成一个空引用异常。“对象引用未设置为对象的实例。”
如何解决此问题?
答案 0 :(得分:8)
如果您使用的是MySql .Net Connector,那么您的配置设置应与以下内容类似
<add name="connstring" connectionString="server=localhost;User Id=root;Persist Security Info=True;database=marctest;password=PASSWORD" providerName="MySql.Data.MySqlClient"/>
然后你的代码看起来像。
using (MySqlConnection dbConn = new MySqlConnection(ConfigurationManager.ConnectionStrings["connstring"].ConnectionString))
{
// Database work done here
}
答案 1 :(得分:4)
我认为你有MySql Connector / Net API。更改ProviderName属性并查看ConnectionStrings。它应为MySql.Data.MySqlClient
并使用System.Configuration.ConfigurationManager.ConnectionStrings
集合。
答案 2 :(得分:0)
您应首先检查以下内容:
ConfigurationManager.ConnectionStrings["connstring"].ConnectionString
返回一个字符串,您可以使用Response.Write
将其写入输出或使用调试器查看
如果您有上述步骤中的字符串,请检查您正在使用的类WebConfigurationManager
是否已实例化且不为空。
如果你没有从第一步获得字符串,你的代码文件夹中可能有另一个web.config
,它可能是一个虚拟目录,可能会覆盖你的web.config
您的connectionStrings
部分应位于configuration
文件的Web.config
内,并且应该如下所示
<configuration>
<connectionStrings>
<add name="connstring" connectionString="..." providerName="..." />
</connectionStrings>
<appSettings>
...
</appSettings>
</configuration>
尝试从纯* .ASPX页面读取连接字符串,看看是否可以先访问它。
创建一个ASPX文件并将其粘贴到其中并从浏览器中调用它。
<%@ Page Language="C#" %>
<%
Response.Write(ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString);
%>
如果仍然无法读取连接字符串,请编辑您的问题并添加完整的web.config以及您尝试为我创建连接的类文件,以查看可能出现的问题