如何将变量的结果从sql命令的datareader执行传递/绑定到另一个表单,该表单接受并使用sql server 2008在c#windows表单中将该值插入另一个表单 [英] how to pass/bind result of variable from datareader execution of sql command to another form which accepts and insert that value into another form in c# windows forms with sql server 2008

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

问题描述

您好我的名字是vishal我想知道/思考如何将变量的结果从一个表单的一个表单的datareader执行传递/绑定到另一个表单,该表单接受并将该值插入到带有sql server的c#windows表单中的另一个表单中2008.



所以我有一个名为: frmLogin 的登录表单,我能够获得当前登录/输入的manager_id,经理名字和管理员的姓氏通过以下c#代码:

Hi my name is vishal i was wondering/thinking on how to pass/bind result of variable from datareader execution of sql command from one form to another form which accepts and insert that value into another form in c# windows forms with sql server 2008.

So i have a login form named:frmLogin,i was able to get currently logged in/entered manager_id,manager first name and manager last name through following c# code:

namespace Mini_Project
{
    public partial class frmLogin : Form
    {
        public int mid;
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;
                Module.Instance.Manager = Convert.ToInt32(rd[0].ToString());
                Module.Instance.GlobalManager = rd[1].ToString();
            }
            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 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();
                         frmManager y=new frmManager();
                        Module.Instance.Manager =y.bGenId;
                        MDIParent1 g = new MDIParent1();
                        g.Show();
                        this.Close();
                    }    
else
                    {
cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=LoginAttempts+1 where username='" + txtUsername.Text + "'", conn);
                    cmd.ExecuteNonQuery();
}
}



下面给出的是c#代码表单( frmUser ),我尝试通过它传递变量值: mid 从数据类型的登录表单( frmLogin ): Int 到表中的字段值: created_by :来自c#windows窗体的 UserDetail2 (frmUser):


Given below is c# code form(frmUser) through which i try to pass value of variable:mid from login form(frmLogin) of data type:Int to value of field:created_by in table:UserDetail2 from c# windows forms(frmUser):

namespace Mini_Project
{
    public partial class frmUser : Form
    {
 public int autoGenId = -1;
 public frmUser()
        {
            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].[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);
            frmLogin h = new frmLogin();
            cmd.Parameters.AddWithValue("@created_by",h.mid);
            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();
            ((MDIParent1)this.MdiParent).updateUserActivities(autoGenId, 1, txtFName.Text + "User detail was added successfully");
            MessageBox.Show("User Detail was added successfully", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information);
            conn.Close();
            this.Close();
        }



以上代码的问题是当我执行/运行程序时,我在字段中获得 0 的值:< b> created_by 在表格中: UserDetail2 适用于所有用户,即使每个用户都是由不同的经理创建的,

每个经理都有不同的manager_id为 manager_id 是表中的一个字段: ManagerDetail2 ,它是数据类型的自动递增主键:Int。

下面给出了表的结构: UserDetail2 在sql server 2008中:

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)是

密码nvarchar(15)是

状态位是

created_by Int Yes

LoginAttempts Int Yes

row_upd_date datetime Yes



想要的是传递变量的值:数据类型的中间:登录表单中的Int(frmLogin),其中包含当前登录/输入的应用程序管理器的manager_id值,表单(frmUser)通过value to field:created_by in table:UserDetail2。这就是我想要的!

任何人都可以帮助我!任何人都可以告诉我/指导我在c#代码中需要进行哪些修改以及在哪里?任何帮助/指导解决这个问题将不胜感激!


The problem with above code is when i execute/run 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,
each manager has different manager_id as manager_id is a field in table:ManagerDetail2 which is auto-increment primary key of data-type:Int.
Given below is structure of table:UserDetail2 in sql server 2008:
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 is want is to pass value of variable:mid of data-type:Int in login form(frmLogin) which contains value of manager_id of currently logged in/entered manager of application to form(frmUser) which passes that value to field:created_by in table:UserDetail2. That is what i want!
Can anyone help me please! Can anyone tell me/guide me on what modifications must i need to in my c# code and where? Any help/guidance in solving of this problem would be greatly appreciated!

推荐答案

创建一个参数化的构造函数,如frmLogin(int mgrId)然后从它可以像这样分配.mid = mgrId;
Create a parameterized constructor like, frmLogin(int mgrId) then from it you can assign like this.mid = mgrId;


我的名字是vishal,成员: 10248768 。我能够解决我的问题/问题如何将变量的结果从一个表单的sql命令的datareader执行传递/绑定到另一个表单,该表单接受并通过c#windows表单中的另一个表单将该值插入到sql server2008中的表中sql server 2008.

首先我创建了一个名为: Class1 的单独类,其中包含将接受来自其他表单的值的全局变量。下面给出了 c#c​​ode 类( Class1 ):

Hi my name is vishal,Member:10248768. I was able to solve my problem/question on How to pass/bind result of variable from datareader execution of sql command of one form to another form which accepts and inserts that value to a table in sql server2008 through another form in c# windows forms with sql server 2008.
So first i created a separate class named:Class1 which contains global variables which will accept values from other forms. Given below is c# code of class(Class1):
namespace Mini_Project
{
    class Class1
    {
        public static int Manager;
        public static int Man
        {
            get{return Manager;}
            set{Manager=value;}
        }
        public static int User;
        public static int Uan
        {
            get { return User; }
            set { User = value; }
        }
public static int Admin;
        public static int Adn
        {
            get { return Admin; }
            set { Admin = value; }
        }
        public static string MName = "";
        public static string ManagerName
        {
            get { return MName; }
            set { MName = value; }
        }
public static string UName = "";
        public static string UserName
        {
            get { return UName; }
            set { UName = value; }
        }
        public static string AName = "";
        public static string AdminName
        {
            get { return AName; }
            set { AName = value; }
        }
    }



以下是我的 c#c​​ode 登录表单( frmLogin ):


Given below is my c# code of login form(frmLogin):

namespace Mini_Project
{
    public partial class frmLogin : Form
    {
        public int mid { get; set; }
        public int uid { get; set; }
        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;
                Class1.Man = Convert.ToInt32(rd[0].ToString());
                Class1.ManagerName = rd[1].ToString();
            }
            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;
                Class1.Uan = Convert.ToInt32(rd[0].ToString());
                Class1.UserName = rd[1].ToString();
            }
            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"))
            {
                Class1.Adn = 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)
                {
                    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());
                        uid = Class1.Uan;
                    }
                    dr.Close();
                    cmd = new SqlCommand("Update [dbo].[UserDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
                    cmd.ExecuteNonQuery();
                    Class1.Uansers = 1;
                    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());
                             mid = Class1.Man;     
                        }
                        fr.Close();
                        cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
                        cmd.ExecuteNonQuery();
                        Class1.Mansers = 1;
                        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();
                    }
                }
            }



上面的代码工作正常!

你可以看到我输入/使用默认用户名 admin 登录应用程序: admin 和默认密码:密码

所以作为管理员我为任务创建经理。下面给出了我的c#表单代码( frmManager ),我通过它创建任务管理器并在表中插入值: ManagerDetail2 frmManager 表单:


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

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);
            Class1.Mansers = 1;
            cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
            cmd.ExecuteNonQuery();
((MDIParent1)this.MdiParent).updateUserActivities(bGenId, 2, txtFName.Text.ToString() + "Manager detail was added successfully");
            MessageBox.Show("Manager Detail was added successfully", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information);
            conn.Close();
            this.Close();
        }



上面的代码工作正常!

所以使用用户名密码来自表: ManagerDetail2 我作为经理进入/登录应用程序,他们为应用程序创建新用户/特定创建的用户将来自创建的经理。下面给出了我的c#表单代码( frmUser ),通过它我可以为应用创建新用户,这些应用程序将由他们创建的管理器接收并在表中插入值: UserDetail2 in sql server2008来自c#windows窗体:


The above code works Fine!
So using username and password from table:ManagerDetail2 i enter/login into application as a manager who creates new users to application/that particular created user will come under to created manager. Given below is my c# code of form(frmUser) through which i create new users to application who will come under by their created manager and also insert values into table:UserDetail2 in sql server2008 from c# windows forms:

namespace Mini_Project
{
    public partial class frmUser : Form
    {
public int autoGenId = -1;
public frmUser()
        {
            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].[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",Class1.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();
            ((MDIParent1)this.MdiParent).updateUserActivities(autoGenId, 1, txtFName.Text + "User detail was added successfully");
            MessageBox.Show("User Detail was added successfully", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information);
            conn.Close();
            this.Close();
        }



以上代码工作正常我想要的方式!

正如您在下面的c#登录表单中看到的那样( frmLogin ):


The above code works Fine just the way i wanted!
As you can see in below c# code of login form(frmLogin):

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;
                Class1.Man = Convert.ToInt32(rd[0].ToString());
                Class1.ManagerName = rd[1].ToString();
            }
            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());
                             mid = Class1.Man;     
                        }
                        fr.Close();
                        cmd = new SqlCommand("Update [dbo].[ManagerDetail2] set LoginAttempts=0 where username='" + txtUsername.Text + "'", conn);
                        cmd.ExecuteNonQuery();
                        Class1.Mansers = 1;
                        MDIParent1 g = new MDIParent1();
                        g.Show();
                        this.Close();
                    }    



So as you can see i get value/manager_id of currently logged in manager of application through sql select query in datareader execution of sql command,then i pass the currently logged in manager,his manager_id to a variable named:Man of data-type:Int in class named:Class1.

Then i pass the same value of Man from Class1 to value of field:created_by in table:UserDetail2 through c# code of form(frmUser):


So as you can see i get value/manager_id of currently logged in manager of application through sql select query in datareader execution of sql command,then i pass the currently logged in manager,his manager_id to a variable named:Man of data-type:Int in class named:Class1.
Then i pass the same value of Man from Class1 to value of field:created_by in table:UserDetail2 through c# code of form(frmUser):

 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",Class1.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.ExecuteNonQuery();



I want to thank all the members of this forum who has tried to help me/also to members of this forum who had given their suggestions/solutions in terms of solving my problem for their time and patience! GOD Bless!


I want to thank all the members of this forum who has tried to help me/also to members of this forum who had given their suggestions/solutions in terms of solving my problem for their time and patience! GOD Bless!


这篇关于如何将变量的结果从sql命令的datareader执行传递/绑定到另一个表单,该表单接受并使用sql server 2008在c#windows表单中将该值插入另一个表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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