Vinnaren i pepparkakshustävlingen!
2016-05-17, 15:26
  #1
Medlem
Jag har skrivit en connection till sql från visual studio, får ett exception fel
"NullReferenceException was unhandled" "An unhandled exception of type 'System.NullReferenceException' occurred in DBLabControllers.dll

Additional information: Objektreferensen har inte angetts till en instans av ett objekt."

Förstår inte vad felet är och hur jag fixar det?
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;

namespace DBLabs
{


    public class DBConnection : DBLabsDLL.DBConnectionBase
    {


        public DBConnection()
        {
            string connectionString = null;
            SqlConnection connection;
            connectionString = "Data Source=(local);Initial Catalog=www3.idt.mdh.se;User ID=ezi15001;Password=********";

            connection = new SqlConnection(connectionString);
        }


        public override bool login(string username, string password)
        {


            string constring = "Data Source = www3.idt.mdh.se;" + "Database=" + username + "_db;" + "User ID=" + username + ";" + "Password=" + password;
            SqlConnection myConnection = new SqlConnection(constring);
            try
            {
                myConnection.Open();
            }
            catch (Exception)
            {
                myConnection.Close();
                return false;
            }
            finally
            {
                myConnection.Close();
            }
            return true;

        }
    }
}
Citera
2016-05-17, 15:35
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av alifarlig
Jag har skrivit en connection till sql från visual studio, får ett exception fel
"NullReferenceException was unhandled" "An unhandled exception of type 'System.NullReferenceException' occurred in DBLabControllers.dll

Additional information: Objektreferensen har inte angetts till en instans av ett objekt."

Förstår inte vad felet är och hur jag fixar det?
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;

namespace DBLabs
{


    public class DBConnection : DBLabsDLL.DBConnectionBase
    {


        public DBConnection()
        {
            string connectionString = null;
            SqlConnection connection;
            connectionString = "Data Source=(local);Initial Catalog=www3.idt.mdh.se;User ID=ezi15001;Password=********";

            connection = new SqlConnection(connectionString);
        }


        public override bool login(string username, string password)
        {


            string constring = "Data Source = www3.idt.mdh.se;" + "Database=" + username + "_db;" + "User ID=" + username + ";" + "Password=" + password;
            SqlConnection myConnection = new SqlConnection(constring);
            try
            {
                myConnection.Open();
            }
            catch (Exception)
            {
                myConnection.Close();
                return false;
            }
            finally
            {
                myConnection.Close();
            }
            return true;

        }
    }
}
Koden kastar ett undantag, men det är inget fel, då hade det hetat fel och inte undantag...

Vad gör konstruktorni klassen DBLabsDLL.DBConnectionBase, förväntar den sig något du inte skickar med, dessutom initierar du inte denna eftersom ett anrop till base saknas i din kod.

Sedan borde du använda debuggern och sätta en breakpoint i din kod. Lite svårt att se på koden nu vad som blir null, men stegar du igenom loginmetoden efter att konstruktorn stegats igenom med debuggern lär du hitta felet.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback