Solved

How to compare textbox to a string ?

Posted on 2004-10-14
26
445 Views
Last Modified: 2010-04-15
Hello Experts;

I'm a java programmer trieng to teach my self C# I'am just having a problem comparing a
textbox to a string. I've created a form w/ codes but I dont have any reference on how to
compare a textbox to a string.

I'am hoping someone could help me. I've done a password login before in java maybe
someone can convert this to C# because this is what I need.

// Method to compare username and password.

  private void login()
  {
  try {

  String pass1 = "Username";
  String pass2 = "Password";
  String pass3 = new String(i2.getPassword());

// Here we are comparing the strings pass1 & pass2
// to a 2 textboxes which is i1 &i2.

  if ( pass1.equals( i1.getText() ) ) {
  if ( pass2.equals( pass3 ) ) {  

// In here if its true we display another form.

  Splash time = new Splash();
  dispose();
  }

  else {

  JOptionPane.showMessageDialog(null,"Incorrect Password . . .",
  "Warning . . .",JOptionPane.WARNING_MESSAGE);
  tryme1++;

// After 3 wrong tries we exit the program

  if( tryme1 >= 3 )
  {
  JOptionPane.showMessageDialog(null,"Your not a valid user . . .",
  "Error . . .",JOptionPane.ERROR_MESSAGE);
  System.exit(0);
  }
  }
  }
  }

So as you can see I just want to know how to do this in C# to compare strings
on textboxes to make a perfect login screen, mine was database driven but
I'm just studying this for C# purposes. Pls, help me convert the above codes
to C#, I appriciate every help.

Regards : Rajah
0
Comment
Question by:rajah_mohammed
  • 11
  • 8
  • 4
26 Comments
 
LVL 7

Expert Comment

by:God_Ares
ID: 12316602
well the code for trying 3 times,.. will be as simple as


if (textbox1.Text == "secret")
{
   MessageBox.Show("eh that is it!");
}

also look at the msdn help which should be inculuded with vs.net. (by using f1)

now for the rest of the code,.. one sec
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12316657
here you go,.. some case errors mabe there,.. but i'm just typing from the head,..

private void login()
  {
  try {

string pass1 = "Username";
  string pass2 = "Password";
//droped pass3,.. see few comments further

// Here we are comparing the strings pass1 & pass2
// to a 2 textboxes which is i1 &i2.
//asuming i1 is a textbox
  if ( pass1 == i1.Text) {
//i2 is the password right?,.. and it needs * ? set i2.PasswordChar
  if ( pass2 == i2.Text) ) {  

// In here if its true we display another form.

  Splash time = new Splash(); // your stuff??
//  dispose(); //dispose what?
  }

  else {

MessageBox.Show("error!!"); //you can add params,.. see help

  tryme1++;

// After 3 wrong tries we exit the program

  if( tryme1 >= 3 )
  {
MessageBox.Show("error you hackert");
 
  Close(); //might be enough,.. this is a form close,.. Application.Exit(); could be used 2
   }
  }
  }
  }


//links

password char : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformstextboxclasspasswordchartopic.asp
0
 

Author Comment

by:rajah_mohammed
ID: 12316998
Okey thanks for that, at least I know how to compare textbox to a string.
One final thing my 3 trial error did not work, I tried your sample but
did not work.

Can you help w/ that here's my codes :

void Button1Click(object sender, System.EventArgs e)
{
 string pass1 = "Username";
 string pass2 = "Password";
 
 if(pass1 == textBox1.Text) {                          
  if(pass2 == textBox2.Text) {
                              
  this.Dispose();
  }                          
 }       
      
 else {            
              
  MessageBox.Show("Sorry, wrong username & password !", "Error . . .",
  MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
  }
 }
            
void Button2Click(object sender, System.EventArgs e)
{
 this.Dispose();
}            
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12317118
well i assumed it was part of your code,.. and you initialized "tryme1" as a private int tryme1 =0; somewhere in your class...


still why are you doing this.Dispose();?

private int tryme1 = 0; //init the retry to zero

void Button1Click(object sender, System.EventArgs e)
{
 string pass1 = "Username";
 string pass2 = "Password";
 
 if(pass1 == textBox1.Text) {                      
  if(pass2 == textBox2.Text) {
  MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
                       
  this.Dispose(); //why???
  }                      
 }      
     
 else {          
           
tryme1++;
if (tryme1==3)
{
 //message you are a haxor and stuff
Close(); //or Application.Exit();
} else
{
  MessageBox.Show("Sorry, wrong username & password !", "Error . . .",
}
   }
 }
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12317323
here's a complete sample:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace WindowsApplication5
{
      /// <summary>
      /// Summary description for Form1.
      /// </summary>
      public class Form1 : System.Windows.Forms.Form
      {
            private System.Windows.Forms.TextBox textBox1;
            private System.Windows.Forms.TextBox textBox2;
            private System.Windows.Forms.Button button1;
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.Container components = null;

            public Form1()
            {
                  //
                  // Required for Windows Form Designer support
                  //
                  InitializeComponent();

                  //
                  // TODO: Add any constructor code after InitializeComponent call
                  //
            }

            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose( bool disposing )
            {
                  if( disposing )
                  {
                        if (components != null)
                        {
                              components.Dispose();
                        }
                  }
                  base.Dispose( disposing );
            }

            #region Windows Form Designer generated code
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                  this.textBox1 = new System.Windows.Forms.TextBox();
                  this.textBox2 = new System.Windows.Forms.TextBox();
                  this.button1 = new System.Windows.Forms.Button();
                  this.SuspendLayout();
                  //
                  // textBox1
                  //
                  this.textBox1.Location = new System.Drawing.Point(16, 56);
                  this.textBox1.Name = "textBox1";
                  this.textBox1.TabIndex = 0;
                  this.textBox1.Text = "textBox1";
                  //
                  // textBox2
                  //
                  this.textBox2.Location = new System.Drawing.Point(16, 88);
                  this.textBox2.Name = "textBox2";
                  this.textBox2.TabIndex = 1;
                  this.textBox2.Text = "textBox2";
                  //
                  // button1
                  //
                  this.button1.Location = new System.Drawing.Point(16, 120);
                  this.button1.Name = "button1";
                  this.button1.Size = new System.Drawing.Size(144, 88);
                  this.button1.TabIndex = 2;
                  this.button1.Text = "button1";
                  this.button1.Click += new System.EventHandler(this.button1_Click);
                  //
                  // Form1
                  //
                  this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
                  this.ClientSize = new System.Drawing.Size(408, 366);
                  this.Controls.Add(this.button1);
                  this.Controls.Add(this.textBox2);
                  this.Controls.Add(this.textBox1);
                  this.Name = "Form1";
                  this.Text = "Form1";
                  this.ResumeLayout(false);

            }
            #endregion

            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                  Application.Run(new Form1());
            }

            private int HackCount=0;

            private void button1_Click(object sender, System.EventArgs e)
            {
                  if ((textBox1.Text=="Secret")&&(textBox1.Text=="4444"))
                  {
                        MessageBox.Show("k");
                  }
                  else
                  {
                        HackCount++;
                        if (HackCount>2)
                        {
                              MessageBox.Show("no way man,... you'r out of here");
                              Close();
                              //Application.Exit();
                        }
                        else
                        {
                              MessageBox.Show("try agoin");
                        }
                  }
            
            
            }
      }
}
0
 

Author Comment

by:rajah_mohammed
ID: 12326892
Okey thanks I'm satisfied. I just wanna answer your question regarding :

> this.Dispose();

I'm using that to close my current open mdi child window, fast and easy.
Okey one final thing though I'll add more points if you can answer this.

I would like to open another mdi window and close this current password
window how would I do that ?

     private void button1_Click(object sender, System.EventArgs e)
          {
               if ((textBox1.Text=="Secret")&&(textBox1.Text=="4444"))
               {
                    // I wanna show another mdi window here, if its correct.
               }
               else
               {
                    HackCount++;
                    if (HackCount>2)
                    {
                         MessageBox.Show("no way man,... you'r out of here");
                         Close();
                         //Application.Exit();
                    }
                    else
                    {
                         MessageBox.Show("try agoin");
                    }
               }      
          }
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12336916
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace WindowsApplication5
{
      /// <summary>
      /// Summary description for Form1.
      /// </summary>
      public class Form1 : System.Windows.Forms.Form
      {
            private System.Windows.Forms.TextBox textBox1;
            private System.Windows.Forms.TextBox textBox2;
            private System.Windows.Forms.Button button1;
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.Container components = null;

            public Form1()
            {
                  //
                  // Required for Windows Form Designer support
                  //
                  InitializeComponent();

                  //
                  // TODO: Add any constructor code after InitializeComponent call
                  //
            }

            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose( bool disposing )
            {
                  if( disposing )
                  {
                        if (components != null)
                        {
                              components.Dispose();
                        }
                  }
                  base.Dispose( disposing );
            }

            #region Windows Form Designer generated code
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                  this.textBox1 = new System.Windows.Forms.TextBox();
                  this.textBox2 = new System.Windows.Forms.TextBox();
                  this.button1 = new System.Windows.Forms.Button();
                  this.SuspendLayout();
                  //
                  // textBox1
                  //
                  this.textBox1.Location = new System.Drawing.Point(16, 56);
                  this.textBox1.Name = "textBox1";
                  this.textBox1.TabIndex = 0;
                  this.textBox1.Text = "textBox1";
                  //
                  // textBox2
                  //
                  this.textBox2.Location = new System.Drawing.Point(16, 88);
                  this.textBox2.Name = "textBox2";
                  this.textBox2.TabIndex = 1;
                  this.textBox2.Text = "textBox2";
                  //
                  // button1
                  //
                  this.button1.Location = new System.Drawing.Point(16, 120);
                  this.button1.Name = "button1";
                  this.button1.Size = new System.Drawing.Size(144, 88);
                  this.button1.TabIndex = 2;
                  this.button1.Text = "button1";
                  this.button1.Click += new System.EventHandler(this.button1_Click);
                  //
                  // Form1
                  //
                  this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
                  this.ClientSize = new System.Drawing.Size(448, 238);
                  this.Controls.Add(this.button1);
                  this.Controls.Add(this.textBox2);
                  this.Controls.Add(this.textBox1);
                  this.Name = "Form1";
                  this.Text = "Form1";
                  this.ResumeLayout(false);

            }
            #endregion



            private int HackCount=0;

            private void button1_Click(object sender, System.EventArgs e)
            {
                  if ((textBox1.Text=="Secret")&&(textBox2.Text=="4444"))
                  {
                        DialogResult = DialogResult.OK; //ok
                        Close();
                  }
                  else
                  {
                        HackCount++;
                        if (HackCount>2)
                        {
                              MessageBox.Show("no way man,... you'r out of here");
                              
                              DialogResult = DialogResult.Cancel;
                              Close();
                              
                        }
                        else
                        {
                              MessageBox.Show("try agoin");
                        }
                  }
            
            
            }
      }

      public class Form2 : System.Windows.Forms.Form
      {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.Container components = null;

            public Form2()
            {
                  //
                  // Required for Windows Form Designer support
                  //
                  InitializeComponent();

                  //
                  // TODO: Add any constructor code after InitializeComponent call
                  //
            }

            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose( bool disposing )
            {
                  if( disposing )
                  {
                        if(components != null)
                        {
                              components.Dispose();
                        }
                  }
                  base.Dispose( disposing );
            }

            #region Windows Form Designer generated code
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                  this.components = new System.ComponentModel.Container();
                  this.Size = new System.Drawing.Size(300,300);
                  this.Text = "Form2";
            }
            #endregion
      }

      public class app : ApplicationContext
      {
            Form1 f;
            Form2 f2;


            

            public app()
            {
                  f = new Form1();
                  f2 = new Form2();
                  f.Closed+=new EventHandler(f_Closing);
                  f2.Closed+=new EventHandler(f2_Closed);
                  f.Show();
                  


                  
            }

            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                  Application.Run(new app());
            }

            private void f_Closing(object sender, EventArgs e)
            {
                  if (f.DialogResult==DialogResult.OK)
                  {
                        f2.Show();
                  }
                  else
                  {                        
                        ExitThread();
                  }

            }

            private void f2_Closed(object sender, EventArgs e)
            {
                  ExitThread();
            }
      }


}
0
 

Author Comment

by:rajah_mohammed
ID: 12337252
Sorry but I'm having a hardtime understanding it, here's what I wanna do :

          void Button1Click(object sender, System.EventArgs e)
            {
                    if((pass1 == textBox1.Text) && (pass2 == textBox2.Text)) {
                              
                  this.Dispose();

                        // but how do I tell this frame to be the child of the parent ?
                        NextFrame x = new NextFrame();
                        x.Show();
                  }       

Hope thats much understandable. Thanks again man.
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12337309
With my latest example I’ve went around, to a imo (in my opinion) neater solution. It starts a process that first shows the login screen. If the logon is successful (DialogResult.Ok) it launches screen 2.


In your latest post your doing:

If login = ok?
{
destroy this object
show other screen.
}
{
tell try again
}


the this.dispose throws away all objects, imo it’s a bad idea to call any dispose’s or Gc.Run(). Those are only for the Garbage Collector,..

an alternative would be,..  to change this.Dispose() to this.Hide().


does this solve it?
0
 

Author Comment

by:rajah_mohammed
ID: 12342330
I dont mind using this.Dispose() or this.Hide(). I just wanna tell my frame to be the child of the parent.
How do I tell my frame to be a child of the parent window ?

 NextFrame x = new NextFrame();
 x.Show();

That is the way I show the next frame but I dont know to tell it to be the child, the syntax that I want is after
the login screen like :

void Button1Click(object sender, System.EventArgs e)
          {
               if((pass1 == textBox1.Text) && (pass2 == textBox2.Text)) {
                         
               this.Dispose();

               // but how do I tell this frame to be the child of the parent ?
               NextFrame x = new NextFrame();
               x.Show();
               }      
          }

I think this is now more understandable !.
0
 
LVL 3

Expert Comment

by:Realmrat
ID: 12344750
Instead of using MDI windows, I think you'd want to use a Dialog.

- Start your Main Form (Parent)
- Prompt for User Information (child Dialog)
- If Authenticated, show next child Dialog

Use seprate forms for each.


Some code from the parent:

        private void Parent_Load(object sender, System.EventArgs e)
        {
            DialogResult result = DisplayAuthDialog();
           
            switch(result)
            {
                case DialogResult.OK:
                {
                    this.AuthenicatedLabel.Text = "True";
                    result = DisplayNextForm();
                    break;
                }
                default:
                {
                    Application.Exit();
                    break;
                }
            }
            NextFormLabel.Text = result.ToString();
        }

        DialogResult DisplayAuthDialog()
        {
            this.Hide();
            Authenticate dlg = new Authenticate();
            dlg.ShowDialog(this);
            return dlg.DialogResult;
        }
        DialogResult DisplayNextForm()
        {
            NextForm dlg = new NextForm();
            dlg.ShowDialog(this);
            return dlg.DialogResult;
        }

From Authenticate Form:

        // Use this to validate that information is entered, and set a friendly error message
        private void UserNameTextBox_Validating(object sender, CancelEventArgs e)
        {
            string toolTip = toolTip1.GetToolTip((Control)sender);
            if( ((TextBox)sender).Text.Length == 0)
            {
                errorProvider1.SetError((Control)sender, toolTip);
                e.Cancel = true;
            }
            else
            {
                errorProvider1.SetError((Control)sender, null);
            }
        }

        private void okButton_Click(object sender, System.EventArgs e)
        {

            if ((UserNameTextBox.Text=="Secret")&&(PasswordTextBox.Text=="4444"))
            {
                this.DialogResult = DialogResult.OK;
            }
            else
            {
                DialogResult result = MessageBox.Show("Invalid User Name or Password.  Press \"Retry\" to try again, or cancel to Exit the program.", "Informitive Message", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information);
                if(result == DialogResult.Cancel)
                {
                    this.DialogResult = DialogResult.Abort;
                }
            }
        }

        private void cancelButton_Click(object sender, System.EventArgs e)
        {
            DialogResult result = MessageBox.Show("You must supply credentials to continue.  Press \"Retry\" to try again, or cancel to Exit the program.", "Informitive Message", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information);
            if(result == DialogResult.Cancel)
            {
                this.DialogResult = DialogResult.Cancel;
            }
        }

Then I just put a simple "OK" button on the last form:

        private void okButton_Click(object sender, System.EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
        }


You can download the source here:
http://www.xamlcoder.com/Downloads/ParentChildDialogTest.zip

 - Joe
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 3

Expert Comment

by:Realmrat
ID: 12344963
Whoops, I forgot about the "3 tries you're out".  You can easily just add a label to the form, and change the "okButton_Click" event of the Authenticate form to such:


        private void okButton_Click(object sender, System.EventArgs e)
        {

            if ((UserNameTextBox.Text=="Secret")&&(PasswordTextBox.Text=="4444"))
            {
                this.DialogResult = DialogResult.OK;
            }
            else
            {
                LoginTries++;
                if(LoginTries >= 3)
                {
                    MessageBox.Show("Access Denied: Unable to Authenticate User, program exiting.", "Access Denied", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.DialogResult = DialogResult.Cancel;
                    return;
                }
                TriesLabel.Text = LoginTries.ToString();
                DialogResult result = MessageBox.Show("Invalid User Name or Password.  Press \"Retry\" to try again, or cancel to Exit the program.", "Informitive Message", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information);
                if(result == DialogResult.Cancel)
                {
                    this.DialogResult = DialogResult.Abort;
                }
            }
        }


Sorry about that.  =]

 - Joe
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12345064
rajah_mohammed

Ok,. getting confused here,.. you want mdi.. ok,.. so i presume you have a mdi-cointainer form? A form where the property isMdiContainer is set to true.

Now the password screen is a child of this mdi-cointainer form right? and you want to the pass form to add a new child?

Asuming NextFrame inhertits form system.windows.forms.form

NextFrame x = new NextFrame();

x.MdiParent = this.MdiParent; //this.mdiparent is set (or should have) when the pass form has been created..



is this it?
0
 

Author Comment

by:rajah_mohammed
ID: 12355930
Thanks for all your comments, I appriciate all of your ideas but I need to solve this simple
problem. I have a 1 parent mdi window and 3 child mdi window. What I wanna do is when
the username and password is correct I will dispose the 1st child and then display the 2
child, is that hard to understand ?

Joe  > Your ideas are okey but I have to get this question finish.

Ares > Yes I have done what you want but when I do this :

NextFrame x = new NextFrame();
x.MdiParent = this.MdiParent;
x.Show();

This will never show the next mdi child because that is declaring that you want the current
child to be the parent ? " I just wanna show the next child window after the password child ".

Hope you understand it I'm increasing the points.
Regards : Rajah
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12358316
0
 

Author Comment

by:rajah_mohammed
ID: 12390559
Thats site is down I cant download anything.
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12394870
yeah middle in a domain transfer,.. hold on
0
 
LVL 3

Expert Comment

by:Realmrat
ID: 12396262

    void NewChild_Click(object sender, EventArgs e)
    {
      // Create and show new MDI child
      Form child = new ChildForm();
      child.Text = "MDI Child";
      // Handle the child form closing Event
      child.Closed += new EventHandler(ChildClosed);
      child.MdiParent = this; // Not this.MdiParent;
      child.Show();
    }

void ChildClosed(object sender, EventArgs e)
{
      // Show which child closed - do other closing work here.   Probably want to impliment your own custom EventArgs.
      Form oldForm = (Form) sender;
      MessageBox.Show(oldForm.Text);
}

That works.

 - Joe
0
 

Author Comment

by:rajah_mohammed
ID: 12427578
> Realmrat;

That was good but not nearly what I want, you said :

    void NewChild_Click(object sender, EventArgs e)
    {
      // Create and show new MDI child
      Form child = new ChildForm();
      child.Text = "MDI Child";
      // Handle the child form closing Event
      child.Closed += new EventHandler(ChildClosed);
      child.MdiParent = this; // Not this.MdiParent;
      child.Show();
    }

What if the owner here is a child, how would you tell the next frame that you want
him to be the child of the main form ?
0
 
LVL 7

Accepted Solution

by:
God_Ares earned 100 total points
ID: 12431678
something like this?

code has not been  compiled

Form p = this.MdiParent; //not shure if it's form you want but i think so,...
while( p.MdiParent !=null)
{
  p = p.mdiparent;
}
child.MdiParent = p;
0
 
LVL 3

Expert Comment

by:Realmrat
ID: 12438517
Okay I think we have a language barrier here; please post your entire program tree.  This is What I think you're saying:

 - Create Main Form X
 - Open Child MDI Form Y
 - From Child MDI Form  Y Open Next Child MDI Form Z

Is this what you are saying?

 - Joe
0
 

Author Comment

by:rajah_mohammed
ID: 12450269
> Is this what you are saying?

YES, YOU GOT IT.
0
 
LVL 7

Expert Comment

by:God_Ares
ID: 12460977
so what about my sample?
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
creating a flowchart from an algorithm 5 30
Combine two datatables into one based on a value from second datatable 4 32
Class object 2 26
Syntax Error 2 43
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
Concerto provides fully managed cloud services and the expertise to provide an easy and reliable route to the cloud. Our best-in-class solutions help you address the toughest IT challenges, find new efficiencies and deliver the best application expe…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now