0

I have a login_form and an admin_form. whenever I try to login I keep getting an empty form. why do I keep getting it?

this my login_form code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;

namespace InternationalStudentsSociteySmartSystem
{
public partial class login_form : Form
{
    public login_form()
    {
        InitializeComponent();
    }

    private void login_button_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=ISSSS_DB;Integrated Security=True");
        SqlDataAdapter sda = new SqlDataAdapter("Select Count(*) from Table_1 where FullName='" + username_text.Text + "' and Password='" + password_text.Text + "' and Role='" + comboBox1.Text + "'", con);
        DataTable dt = new System.Data.DataTable();
        sda.Fill(dt);
        if (dt.Rows[0][0].ToString() == "1")
        {
            SqlDataAdapter sda1 = new SqlDataAdapter("Select Role from Table_1 where FullName='" + username_text.Text + "' and Password='" + password_text.Text + "'", con);
            DataTable dt1 = new System.Data.DataTable();
            sda1.Fill(dt1);
            if (dt1.Rows[0][0].ToString() == "Administrator")
            {
                admin_form ss = new admin_form();
                ss.Show();
            }
            if (dt1.Rows[0][0].ToString() == "Committee")
            {
                committee_form ss = new committee_form();
                ss.Show();
            }
            if (dt1.Rows[0][0].ToString() == "Secretary")
            {
                secretary_form ss = new secretary_form();
                ss.Show();
            }
        }

    }
}
}

and this is my admin_form code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;

namespace InternationalStudentsSociteySmartSystem
{
public partial class admin_form : Form
{
    SqlConnection conn = new SqlConnection("Data Source=TAREK-PC;Initial Catalog=ISSSS_DB;Integrated Security=True");
    SqlCommand command;
    string imgLoc;
    SqlDataReader myReader;
    public admin_form(string username)
    {
        InitializeComponent();
    }

    public admin_form()
    {
        // TODO: Complete member initialization
    }
    private void button1_Click(object sender, EventArgs e)
    {
        welcome_text.Text = "Welcome!";

        try
        {
            string sql = "SELECT Image FROM Table_1 WHERE FullName='" + admin_name_text.Text + "'";
            if (conn.State != ConnectionState.Open)
                conn.Open();
            command = new SqlCommand(sql, conn);
            SqlDataReader reader = command.ExecuteReader();
            reader.Read();
            if (reader.HasRows)
            {
                byte[] img = (byte[])(reader[0]);
                if (img == null)
                    admin_picturebox.Image = null;
                else
                {
                    MemoryStream ms = new MemoryStream(img);
                    admin_picturebox.Image = Image.FromStream(ms);
                }

            }
            else
            {

            }
            conn.Close();
        }
        catch (Exception ex)
        {
            conn.Close();
            MessageBox.Show(ex.Message);
        }
    }

    private void admin_form_Load(object sender, EventArgs e)
    {
        admin_picturebox.SizeMode = PictureBoxSizeMode.StretchImage;
    }

    private void register_committee_button_Click(object sender, EventArgs e)
    {
        register_committee_form rcf = new register_committee_form();
        rcf.Show();
    }
}
}

as you can see I also have to other forms which are committee_form and secretary_form (which they work just fine) but I didn't write their code yet. so I figured the problem is with admin form... I appreciate the help, thanks.

Tarek-Dev
  • 170
  • 1
  • 3
  • 19

1 Answers1

1

You are calling the admin_form constructor that doesn't take any parameters. In that constructor the call to InitializeComponent is missing. So your admin_form is totally blank

You should add the call to InitializeComponent also to the parameterless constructor of admin_form.

public admin_form(string username)
{
    InitializeComponent();
}

public admin_form()
{
    // TODO: Complete member initialization
    InitializeComponent();

}

As a side note, not related to your actual problem. Your code that access the database is vulnerable to Sql Injection hacks. And you will have a lot of problems to parse your input data. You should start immediately to use a parameterized query approach instead of string concatenation

Community
  • 1
  • 1
Steve
  • 213,761
  • 22
  • 232
  • 286