«Я новичок в asp.net, и когда я попытался подключиться к базе данных MySQL, я получил эту ошибку. сообщение об ошибке
вот мой код в файле web.config
<configuration>
<appSettings>
<add key = "HostPrefix" value = "/root" />
<add key = "ServerIp" value = "localhost" />
<add key = "MysqlConnectionstring" value = "server=localhost;Database=world;port=3306;user=root;password=1234;SslMode=none" />
<add key = "UserImagePath" value = "world\city\" />
</appSettings>
вот мой код для подключения к базе данных
using Common;
using MySql.Data.MySqlClient;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Configuration;
namespace Repositories
{
public class StudentRepository
{
private string ConnectionstringMaster = WebConfigurationManager.AppSettings["MysqlConnectionString"];
private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
public studentsModel UserRegistration(string Id )
{ studentsModel stud1 = new studentsModel();
try
{
string Query = "select ID,Name,CountryCode,District from world.city where ID='" + Id + "'";
using (var connection = new MySqlConnection(ConnectionstringMaster))
{
using (var command= new MySqlCommand(Query,connection))
{
connection.Open();
using (var sdr=command.ExecuteReader())
{
while (sdr.Read())
{
stud1.FirstName = sdr["Name"].ToString();
}
}
}
}
return stud1;
}
catch (Exception e)
{
Logger.Info("inside Exception Repo Userregistration "+e.ToString());
return stud1;
}
}
}
}
Здесь я пытаюсь получить данные из базы данных и присвоить эти значения для studentmodel stud1. Но когда я пытаюсь создать новое соединение MySQL с моей базой данных на локальном хосте это дает исключение, подобное этому.
ispasswordExpired :connection.ispasswordExpired вызвало исключение типа «System.nullReferenceException»
ServerThread :connection.ServerThread вызвал исключение типа «System.nullReferenceException»
ServerVersion : connection.ServerVersion вызвало исключение типа «System.nullReferenceException»
Вам нужно добавить connectionStrings
в ваш Web.Config.
Web.config:
<configuration>
<connectionStrings>
<add name = "MysqlConnectionstring" connectionString = "Server=myServerName;Port=3306;Database=myDatabaseName;Uid=testUser;Pwd=myPassword;" />
</connectionStrings>
...
</configuration>
Сначала вам нужно добавить раздел строки подключения в ваш файл web.config
и удалить его из раздела appSettings
следующим образом:
<configuration>
<connectionStrings>
<add name = "MysqlConnectionstring" connectionString = "server=localhost;Database=world;port=3306;user=root;password=1234;SslMode=none" />
</connectionStrings>
<appSettings>
<add key = "HostPrefix" value = "/root" />
<add key = "ServerIp" value = "localhost" />
<add key = "" value = "" />
<add key = "UserImagePath" value = "world\city\" />
</appSettings>
</configuration>
И затем вы можете получить доступ к значению строки подключения, обратившись к свойству ConnectionString
в своем коде следующим образом:
private string ConnectionstringMaster = ConfigurationManager.ConnectionStrings["MysqlConnectionstring"].ConnectionString;
Отвечает ли это на ваш вопрос? Что такое NullReferenceException и как его исправить?