如何将变量的值从登录表单传递到另一个表单,该表单使用sql server 2008将该值插入c#windows表单中的另一个表中 [英] how to pass value of variable from login form to another form which inserts that value into another table in c# windows forms with sql server 2008

查看:67
本文介绍了如何将变量的值从登录表单传递到另一个表单,该表单使用sql server 2008将该值插入c#windows表单中的另一个表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我的名字是vishal我想知道如何将变量的值从登录表单传递到另一个表单,该表单将该值插入到c#server表单中的另一个表格中使用sql server 2008?

所以我我正在开发一个名为: Mini Project 的应用程序,我还有一个名为: frmLogin 的登录表单。以下是我的登录表单的 c#c​​ode frmLogin ):

Hi my name is vishal i was wondering on how to pass value of variable from login form to another form which inserts that value into another table in c# windows forms with sql server 2008?
So i am developing a application named:Mini Project,i also have a login form named:frmLogin. Given below is c# code of my login form(frmLogin):

namespace Mini_Project
{
    public partial class frmLogin : Form
    {
        public int mid;
        public int uid = 0;
public frmLogin()
        {
            InitializeComponent();
        }
private void frmLogin_Load(object sender, EventArgs e)
        {    
        }
private bool ManagerUser(string username, string password)
        {
           bool success = false;
            SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=Task;Integrated Security=true");
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd = new SqlCommand("Select manager_id,manager_first_name from [dbo].[ManagerDetail2] where username='"+txtUsername.Text+"' and password='"+txtPassword.Text+"' and LoginAttempts< 3", conn);
            SqlDataReader rd = cmd.ExecuteReader();
           while(rd.Read())
            {
                success=true;   
            }
            rd.Close();
            conn.Close();
            return success;
        }
private bool ValidateUser(string username, string password)
        {
            bool success = false;
            SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=Task;Integrated Security=true");
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd = new SqlCommand("Select * from [dbo].[UserDetail2] where username='"+txtUsername.Text+"' and password='"+txtPassword.Text+"' and LoginAttempts< 3", conn);
            SqlDataReader rd = cmd.ExecuteReader();
           while(rd.Read())
            {
                success=true;
            }
            rd.Close();
            conn.Close();
            return success;
        }
private void btnLogin_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=Task;Integrated Security=true");
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            if ((txtPassword.Text == "password") && (txtUsername.Text.ToLower() == "admin"))
            {
                Module.Instance.Admin = 1;
                MDIParent1 h = new MDIParent1();
                h.Show();
                this.Close();
            }
            else
            {
                string username = txtUsername.Text;
                string password = txtPassword.Text;
                bool validUser = ValidateUser(username, password);
                bool validmanager = ManagerUser(username, password);
                if (validUser)
                {
                    uid = 0;
                    string name = ("Select user_first_name,user_last_name,user_id from [dbo].[UserDetail2] where username='" + txtUsername.Text + "'");
                    cmd = new SqlCommand(name);
                    cmd.Connection = conn;
                    cmd.CommandType = CommandType.Text;
                    SqlDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        name = dr[0].ToString() + " " + dr[1].ToString()+System.Environment.NewLine+dr[2].ToString();
                        uid = Convert.ToInt32(dr[2].ToString());
                    }
                    dr.Close();
                    cmd = new SqlCommand("Update [dbo].[UserDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
                    cmd.ExecuteNonQuery();
                    frmUser u = new frmUser();
                    Module.Instance.User =u.autoGenId;
                    MDIParent1 m = new MDIParent1();
                    m.Show();
                    this.Close();
                }
                     if (validmanager)
                    {
                        string manager = ("Select manager_first_name,manager_last_name,manager_id from [dbo].[ManagerDetail2] where username='" + txtUsername.Text + "'");
                        cmd = new SqlCommand(manager);
                        cmd.Connection = conn;
                        cmd.CommandType = CommandType.Text;
                        SqlDataReader fr = cmd.ExecuteReader();
                        while (fr.Read())
                        {
                            manager = fr[0].ToString() + " " + fr[1].ToString()+System.Environment.NewLine+fr[2].ToString();
                             mid = Convert.ToInt32(fr[2].ToString());
                        }
                        fr.Close();
                        cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
                        cmd.ExecuteNonQuery();
                         frmManager y=new frmManager();
                        Module.Instance.Manager =y.bGenId;
                        MDIParent1 g = new MDIParent1();
                        g.Show();
                        this.Close();
                    }    
                    else
                    {
                        cmd = new SqlCommand("Update [dbo].[UserDetail2] set LoginAttempts=LoginAttempts+1 where username='" + txtUsername.Text + "'", conn);
                    cmd.ExecuteNonQuery();
                    cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=LoginAttempts+1 where username='" + txtUsername.Text + "'", conn);
                    cmd.ExecuteNonQuery();
                        MessageBox.Show("Invalid user name or password. Please try tomorow ", "Task", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        txtUsername.Focus();
                    }
                }
            }
private void btnCancel_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }



以上代码在某种程度上运行良好!正如您所见,我使用默认用户名登录/进入应用程序: admin 和默认密码:密码作为 admin ,为任务创建管理员。下面给出了c#代码形式( frmManager ),我通过它创建任务管理器,将值插入到表中: ManagerDetail2 在sql server2008中!:


The above code works Fine to some extent! As you can see i login/enter into application using default username:admin and default password:password as a admin,create a manager for tasks. Given below is c# code of form(frmManager) through which i create manager for tasks,insert values into table:ManagerDetail2 in sql server2008!:

namespace Mini_Project
{
    public partial class frmManager : Form
    {
public int bGenId = -1;
        public frmManager()
        {
            InitializeComponent();
        }
private void btnCreate_Click(object sender, EventArgs e)
        {
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=Task;Integrated Security=true");
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd = new SqlCommand("Insert into [dbo].[ManagerDetail2](manager_first_name,manager_last_name,manager_dob,manager_sex,email,username,password,status,created_by,LoginAttempts,row_upd_date)" + "Values(@manager_first_name,@manager_last_name,@manager_dob,@manager_sex,@email,@username,@password,@status,@created_by,@LoginAttempts,GetDate()); Select @autoGenId=SCOPE_IDENTITY();", conn);
            cmd.Parameters.AddWithValue("@manager_first_name", txtFName.Text);
            cmd.Parameters.AddWithValue("@manager_last_name", txtLName.Text);
            cmd.Parameters.AddWithValue("@manager_dob", dtDOB.Value);
            if (cboSex.SelectedIndex == 0)
            {
                cmd.Parameters.AddWithValue("@manager_sex", "Male");
            }
            else if (cboSex.SelectedIndex == 1)
            {
                cmd.Parameters.AddWithValue("@manager_sex", "Female");
            }
            else if (cboSex.SelectedIndex == 2)
            {
                cmd.Parameters.AddWithValue("@manager_sex", "Transgender");
            }
            cmd.Parameters.AddWithValue("@email", txtEmailID.Text);
            cmd.Parameters.AddWithValue("@username", txtUsername.Text);
            cmd.Parameters.AddWithValue("@password", txtPassword.Text);
            cmd.Parameters.AddWithValue("@status", 1);
            cmd.Parameters.AddWithValue("@Created_by", 1);
            cmd.Parameters.AddWithValue("@LoginAttempts", 0);
            cmd.Parameters.Add("@autoGenId", SqlDbType.Int).Direction = ParameterDirection.Output;
            cmd.ExecuteNonQuery();
            bGenId = Convert.ToInt32(cmd.Parameters["@autoGenId"].Value);
            cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
            cmd.ExecuteNonQuery();
            MessageBox.Show("Manager Detail was added successfully", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information);
            conn.Close();
            this.Close();
        }



上面的代码运行正常,没有任何问题!

下面给出的是表结构: ManagerDetail2 在sql server 2008中:

ColumnName DataType AllowNulls

manager_id (自动增加主键)Int No

manager_first_name nvarchar(50)是

manager_last_name nvarchar(50)是

manager_dob date是

manager_sex nvarchar(20)是

电子邮件nv​​archar(60)是

用户名nvarchar(25)是

密码nvarchar(15)是

状态位是

created_by Int是

LoginAttempts Int是

row_upd_date datetime是



因此,从表中使用用户名密码 ManagerDetail2 我输入/ login into应用程序作为管理器(每个管理器具有不同的manager_id作为字段:表中的manager_id:ManagerDetail2是自动增量主键),创建/添加新用户到应用程序谁将只属于我/特定经理!

你可以在我的下面的c#登录表格代码( frmLogin )中看到我如何得到经理的名字,经理的姓氏和当前登录的应用经理的manager_id 。以下是c#代码:


The above code works fine with no problem at all!
Given below is structure of table:ManagerDetail2 in sql server 2008:
ColumnName DataType AllowNulls
manager_id(auto-increment primary key) Int No
manager_first_name nvarchar(50) Yes
manager_last_name nvarchar(50) Yes
manager_dob date Yes
manager_sex nvarchar(20) Yes
email nvarchar(60) Yes
username nvarchar(25) Yes
password nvarchar(15) Yes
status bit Yes
created_by Int Yes
LoginAttempts Int Yes
row_upd_date datetime Yes

So using username and password from table:ManagerDetail2 i enter/login into application as manager(each manager has different manager_id as field:manager_id in table:ManagerDetail2 is auto-increment primary key),create/add new users to application who will come under me/that particular manager only!
As you can see in my below c# code of login form(frmLogin) of how i get manager first name,manager last name and manager_id of currently logged in manager of application.Given below is that c# code:

namespace Mini_Project
{
    public partial class frmLogin : Form
    {
   public int mid;
public frmLogin()
        {
            InitializeComponent();
        }
private bool ManagerUser(string username, string password)
        {
           bool success = false;
            SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=Task;Integrated Security=true");
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd = new SqlCommand("Select manager_id,manager_first_name from [dbo].[ManagerDetail2] where username='"+txtUsername.Text+"' and password='"+txtPassword.Text+"' and LoginAttempts< 3", conn);
            SqlDataReader rd = cmd.ExecuteReader();
           while(rd.Read())
            {
                success=true;
}rd.Close();
            conn.Close();
            return success;
        }
private void btnLogin_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=Task;Integrated Security=true");
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
string username = txtUsername.Text;
                string password = txtPassword.Text;
 bool validmanager = ManagerUser(username, password);
if (validmanager)
                    {
                        string manager = ("Select manager_first_name,manager_last_name,manager_id from [dbo].[ManagerDetail2] where username='" + txtUsername.Text + "'");
                        cmd = new SqlCommand(manager);
                        cmd.Connection = conn;
                        cmd.CommandType = CommandType.Text;
                        SqlDataReader fr = cmd.ExecuteReader();
                        while (fr.Read())
                        {
                            manager = fr[0].ToString() + " " + fr[1].ToString()+System.Environment.NewLine+fr[2].ToString();
                             mid = Convert.ToInt32(fr[2].ToString());
                        }
                        fr.Close();
                        cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
                        cmd.ExecuteNonQuery();
MDIParent1 g = new MDIParent1();
                        g.Show();
                        this.Close();
}



正如您可以看到数据类型的变量 mid Int 包含 manager_id 当前登录的应用程序管理器!

所以我作为管理员输入/登录应用程序,为应用程序创建新用户,这些应用程序将只属于我/特定经理.Given下面是c#代码形式( frmUser ),我通过它创建应用程序的新用户,也将值插入表中: UserDetail2


As you can see variable mid of data type:Int contains value of manager_id of currently logged in manager of application!
So i enter/login into application as a manager,create new users to application who will come under me/that particular manager only.Given below is c# code of form(frmUser) through which i create new users to application,also insert values into table:UserDetail2:

namespace Mini_Project
{
    public partial class frmUser : Form
    {
public int autoGenId = -1;
public frmUser()
        {
            InitializeComponent();
frmLogin j = new frmLogin();
             Int man = j.mid;
}
private void btnCreate_Click(object sender, EventArgs e)
        {
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=Task;Integrated Security=true");
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd = new SqlCommand("Insert into [dbo].[UserDetail2](user_first_name,user_last_name,user_dob,user_sex,email,username,password,status,row_upd_date,created_by,LoginAttempts)" + "Values(@user_first_name,@user_last_name,@user_dob,@user_sex,@email,@username,@password,@status,GetDate(),@created_by,@LoginAttempts); Select @autoGenId=SCOPE_IDENTITY();", conn);
            cmd.Parameters.AddWithValue("@user_first_name", txtFName.Text);
            cmd.Parameters.AddWithValue("@user_last_name", txtLName.Text);
            cmd.Parameters.AddWithValue("@user_dob", dtDOB.Value);
            if (cboSex.SelectedIndex == 0)
            {
                cmd.Parameters.AddWithValue("@user_sex", "Male");
            }
            else if (cboSex.SelectedIndex == 1)
            {
                cmd.Parameters.AddWithValue("@user_sex", "Female");
            }
            else if (cboSex.SelectedIndex == 2)
            {
                cmd.Parameters.AddWithValue("@user_sex", "Transgender");
            }
            cmd.Parameters.AddWithValue("@email", txtEmailID.Text);
            cmd.Parameters.AddWithValue("@username", txtUsername.Text);
            cmd.Parameters.AddWithValue("@password", txtPassword.Text);
            cmd.Parameters.AddWithValue("@status", 1);
            cmd.Parameters.AddWithValue("@created_by",man);
            cmd.Parameters.AddWithValue("@LoginAttempts", 0);
            cmd.Parameters.Add("@autoGenId", SqlDbType.Int).Direction = ParameterDirection.Output;
            cmd.ExecuteNonQuery();
            autoGenId = Convert.ToInt32(cmd.Parameters["@autoGenId"].Value);
cmd = new SqlCommand("Update [dbo].[UserDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
            cmd.ExecuteNonQuery();
            MessageBox.Show("User Detail was added successfully", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information);
            conn.Close();
            this.Close();
        }



该程序仅在某种程度上执行良好!我面临的问题是每次执行程序,我在字段中获得 0 的值:表中的 created_by UserDetail2 适用于所有用户,即使每个用户都是由不同的经理创建的!



下面给出的是表结构: UserDetail2 在sql server2008中:

ColumnName DataType AllowNulls

user_id(自动增量主键)Int No

user_first_name nvarchar(50)是

user_last_name nvarchar(50)是

user_dob日期是

user_sex nvarchar(20)是

电子邮件nv​​archar(60)是

用户名nvarchar(25)是

pa ssword nvarchar(15)是

状态位是

created_by Int是

LoginAttempts Int Yes

row_upd_date datetime是



我想要的是变量 mid 的值(在登录表单(frmLogin)中,其中包含当前登录的应用程序管理器的manager_id的值要传递给字段的值: created_by 在表格中: UserDetail2 由特定经理创建新用户。

所以我的问题是在获取应用程序中当前输入/登录管理器的manager_id方面,我走在正确的轨道上?如果是这样,请告诉我在c#代码中需要做哪些修改以及在哪里实现我所需的结果?任何人都可以帮助我!任何人都可以帮助我/指导我解决我的问题!任何帮助/指导解决这个问题将不胜感激!


The program executes well some extent only! The problem i am facing is every i execute the program,i am getting value as 0 in field:created_by in table:UserDetail2 for all users,even though each user is created by different manager!

Given below is structure of table:UserDetail2 in sql server2008:
ColumnName DataType AllowNulls
user_id(auto-increment primary key) Int No
user_first_name nvarchar(50) Yes
user_last_name nvarchar(50) Yes
user_dob date Yes
user_sex nvarchar(20) Yes
email nvarchar(60) Yes
username nvarchar(25) Yes
password nvarchar(15) Yes
status bit Yes
created_by Int Yes
LoginAttempts Int Yes
row_upd_date datetime Yes

What i want is value of variable mid(in login form(frmLogin) which contains value of manager_id of currently logged in manager of application to be passed to value of field:created_by in table:UserDetail2 upon creation of new user by that particular manager.
So my question is am i going in right track in terms of getting manager_id of currently entered/logged in manager in application?If so tell me what modifications must i need to do in my c# code and where to achieve my required result? Can anyone help me please! Can anyone help me/guide me to solve my problem! Any help/guidance in solving of this problem would be greatly appreciated!

推荐答案

这是一个想法:

在两个表单之间传输信息,第1部分:父对子 [ ^ ]

在两种表格之间传递信息,第2部分:儿童到家长 [< a href =http://www.codeproject.com/Tips/548131/Transferring-information-between-two-forms-Parttarget =_ blanktitle =New Window> ^ ] br />
在两种表格之间传递信息,第3部分:儿童对儿童 [ ^ ]
Here is an idea:
Transferring information between two forms, Part 1: Parent to Child[^]
Transferring information between two forms, Part 2: Child to Parent[^]
Transferring information between two forms, Part 3: Child to Child[^]


这篇关于如何将变量的值从登录表单传递到另一个表单,该表单使用sql server 2008将该值插入c#windows表单中的另一个表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆