Beste
Ik moet een connectie maken met SQL om te kunnen in loggen met bepaalde accounts die in de database staan. Daarom start ik op met de laagste SQL Application Role. Na het inloggen toont het program een 2de form. In deze form worden gegevens uit de database gehaald, maar helaas krijg ik geen gegevens, enkel en alleen de volgende betekenis volle error. Ik heb het vermoeden dat dit te maken heeft dat hij 2 keer op 1 connectie die database role wilt gebruiken. Maar ik moet kunnen switchen tussen rollen.
A severe error occurred on the current command. The results, if any, should be discarded.
Connectie Class
Login scherm, zodat je kunt zien dat dit wel lukt
Gegevens form
Ik moet een connectie maken met SQL om te kunnen in loggen met bepaalde accounts die in de database staan. Daarom start ik op met de laagste SQL Application Role. Na het inloggen toont het program een 2de form. In deze form worden gegevens uit de database gehaald, maar helaas krijg ik geen gegevens, enkel en alleen de volgende betekenis volle error. Ik heb het vermoeden dat dit te maken heeft dat hij 2 keer op 1 connectie die database role wilt gebruiken. Maar ik moet kunnen switchen tussen rollen.
A severe error occurred on the current command. The results, if any, should be discarded.
Connectie Class
Code:
namespace DBTaakSQL.DataAcessClasses
{
class DABaseClass
{
string connectionString = ConfigurationManager.ConnectionStrings["local"].ConnectionString;
protected SqlConnection connection;
public void Open(string role)
{
connection = new SqlConnection(connectionString);
SqlCommand command;
if (role.Equals("normal"))
{
command = new SqlCommand("sp_setapprole 'NORMAL' , 'normal' ", connection);
}
else
{
command = new SqlCommand("sp_setapprole 'SUPER' , 'super' ", connection);
}
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
public void Close()
{
connection.Close();
connection.Dispose();
}
}
}
Code:
namespace DBTaakSQL
{
public partial class FormLogin : Form
{
public FormLogin()
{
InitializeComponent();
}
private void buttonLogin_Click(object sender, EventArgs e)
{
DAGebruiker daGebruiker = new DAGebruiker();
daGebruiker.Open("normal");
Gebruiker gebruiker = daGebruiker.CheckLogin(textBoxPaswoord.Text, textBoxNaam.Text);
daGebruiker.Close();
if (gebruiker != null)
{
FormTable formTable = new FormTable();
formTable.Gebruiker = gebruiker;
formTable.Show();
}
else {
panel1.Visible = true;
}
}
Gegevens form
Code:
namespace DBTaakSQL
{
public partial class FormTable : Form
{
Gebruiker _gebruiker;
internal Gebruiker Gebruiker
{
get { return _gebruiker; }
set { _gebruiker = value; }
}
public FormTable()
{
InitializeComponent();
}
private void FormTable_Load(object sender, EventArgs e)
{
listView1.BeginUpdate();
listView1.View = View.Details;
listView1.FullRowSelect = true;
listView1.MultiSelect = false;
listView1.Columns.Add("ID", 35,HorizontalAlignment.Right);
listView1.Columns.Add("LOGIN", 120, HorizontalAlignment.Left);
listView1.Columns.Add("PASSWORD", 120, HorizontalAlignment.Left);
listView1.Columns.Add("STATUS", 120, HorizontalAlignment.Left);
listView1.EndUpdate();
}
private void button1_Click(object sender, EventArgs e)
{
listView1.BeginUpdate();
DAGebruiker daGebruiker = new DAGebruiker();
daGebruiker.Open("normal");
List<Gebruiker> gebruikersList = daGebruiker.GetGebruikers();
foreach (Gebruiker gebruiker in gebruikersList)
{
ListViewItem item = new ListViewItem(gebruiker.GebruikerNr.ToString());
item.SubItems.Add(gebruiker.GebruikerLogin);
item.SubItems.Add(gebruiker.GebruikerPaswoord);
item.SubItems.Add(gebruiker.GebruikerStatus);
listView1.Items.Add(item);
}
daGebruiker.Close();
listView1.EndUpdate();
}