SqlParameter的参数应用

【方法一】

SqlParameter[] prams =//创建参数数组
                              {
                                new SqlParameter("@id", SqlDbType.VarChar, 8),
                                new SqlParameter("@name", SqlDbType.VarChar, 50),
                                new SqlParameter("@money", SqlDbType.Float),
                                new SqlParameter("@talk", SqlDbType.VarChar, 50),
                                new SqlParameter("@department", SqlDbType.VarChar, 50),
                              };
                    prams[0].Value = this.textBox1.Text;//设置参数值
                    prams[1].Value = this.textBox2.Text;//设置参数值
                    prams[2].Value = this.textBox3.Text;//设置参数值
                    prams[3].Value = this.textBox4.Text;//设置参数值
                    prams[4].Value = this.textBox5.Text;//设置参数值
                    foreach (SqlParameter parameter in prams)
                        cmd.Parameters.Add(parameter);//添加参数

【方法2】

 con.sqlConnection.Open();//打开数据库连接
           
            using (SqlCommand command = new SqlCommand("INSERT INTO 员工表 " +//创建数据库命令对象
               "VALUES (@员工编号, @员工姓名,@基本工资,@工作评价,@所属部门)", con.sqlConnection))
            {
                command.Parameters.Add("@员工编号",                                                   //添加参数并赋值
                    SqlDbType.VarChar, 50, "员工编号").Value = this.textBox1.Text;
               
                command.Parameters.Add("@员工姓名",//添加参数并赋值
                    SqlDbType.VarChar, 50, "员工姓名").Value = this.textBox2.Text;
               
                command.Parameters.Add("@基本工资",//添加参数并赋值
                    SqlDbType.Float, 8, "基本工资").Value = Convert.ToString(this.textBox3.Text);
              
                command.Parameters.Add("@工作评价",//添加参数并赋值
                    SqlDbType.VarChar, 50, "工作评价").Value = this.textBox4.Text;
             
                command.Parameters.Add("@所属部门",//添加参数并赋值
                      SqlDbType.VarChar, 50, "所属部门").Value = this.textBox5.Text;
                //command.Parameters.Add("@所属部门",//添加参数并赋值
                    //SqlDbType.VarChar, 50, "所属部门").Value = "";
                command.ExecuteNonQuery();//执行SQL语句

                MessageBox.Show("添加数据成功");//弹出消息对话框
            }
            con.sqlConnection.Close();//关闭数据库连接

**************************************************************************************变形金刚*

         SqlCommand myCommand;       

        myCommand = Conn.CreateCommand();
        myCommand.CommandText = insertSql;
        myCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15);
        myCommand.Parameters.Add("@Description", SqlDbType.NText);
        myCommand.Parameters["@CategoryName"].Value = txtCategoryName.Text;
        myCommand.Parameters["@Description"].Value = txtDescription.Text;

*******************************************************************************************************************

 【方法3】WinForm下的:

string sqlReset = @“update UserInfo set userName='{0}',password='{1}',QQ='{2}',Phone='{3}',Email='{4}',Address='{5}' where ID='{6}'";
sqlReset = string.Format(sqlReset, txtUser.Text.Trim(), txtPassword.Text.Trim(), txtQQ.Text.Trim(), txtPhone.Text.Trim(), txtEmail.Text.Trim(), txtAddress.Text.Trim(),Convert.ToInt32(this.dgvUser.CurrentRow.Cells[0].Value.ToString()));

这种方式的使用,字段值必须一一对应。

 

也可以修改为如下方式:

        private void btnReset_Click(object sender, EventArgs e)
        {
            if(MessageBox.Show("您确定要修改用户信息吗?", "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                //int selectID=this.dgvUser.CurrentRow.Index;
                //string sqlReset="update UserInfo set userName='{0}',password='{1}',QQ='{2}',Phone='{3}',Email='{4}',Address='{5}' where ID='{6}'";
                //sqlReset = string.Format(sqlReset, txtUser.Text.Trim(), txtPassword.Text.Trim(), txtQQ.Text.Trim(), txtPhone.Text.Trim(), txtEmail.Text.Trim(), txtAddress.Text.Trim(),Convert.ToInt32(this.dgvUser.CurrentRow.Cells[0].Value.ToString()));

          

                using (SqlConnection sqlconn = new SqlConnection(DBConnect.ConnString))
                {
                    sqlconn.Open();
                    SqlCommand cmd = sqlconn.CreateCommand();

                    string sqlReset = "update UserInfo set userName=@userName,password=@password,QQ=@QQ,Phone=@Phone,Email=@Email,Address=@Address whereID=@ID";
                          SqlParameter sp = new SqlParameter("@userName", txtUser.Text.Trim());
                    cmd.Parameters.Add(sp);
                    sp = new SqlParameter("@password", txtPassword.Text.Trim());
                    cmd.Parameters.Add(sp);
                    sp = new SqlParameter("@QQ", txtQQ.Text.Trim());
                    cmd.Parameters.Add(sp);
                    sp = new SqlParameter("@Phone", txtPhone.Text.Trim());
                    cmd.Parameters.Add(sp);
                    sp = new SqlParameter("@Email", txtEmail.Text.Trim());
                    cmd.Parameters.Add(sp);
                    sp = new SqlParameter("@Address", txtAddress.Text.Trim());
                    cmd.Parameters.Add(sp);
                    sp = new SqlParameter("@ID", Convert.ToInt32(this.dgvUser.CurrentRow.Cells[0].Value.ToString()));
                    cmd.Parameters.Add(sp);

                    cmd.CommandText = sqlReset;
                    cmd.CommandType = CommandType.Text;

                    cmd.ExecuteNonQuery();
                    InitDataGridView();    //刷新列表
                }
            }
        }
        //刷新列表
        public void InitDataGridView()//重现
        {
            string sqlStr = @"select ID as 编号,userName as 用户名,password as 密码,QQ,Phone as 电话号码,Email as 电子邮件,Address as 住址,Score as 积分 from UserInfo";
            SqlDataAdapter adp = new SqlDataAdapter(sqlStr, DBConnect.ConnString);
            DataSet ds = new DataSet();
            adp.Fill(ds);
            dgvUser.DataSource = ds.Tables[0];
            //adp.Fill(ds, "UserInfo");
            //if (ds.Tables["UserInfo"].Rows.Count > 0)
            //{
            //    dgvUser.DataSource = ds.Tables["UserInfo"].DefaultView;
            //}
            //else
            //{
            //    dgvUser.DataSource = null;//数据源为空
            //}
        }

 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

 private void toolStripButton2_Click(object sender, EventArgs e)
        {
            con.sqlConnection.Open();//打开数据库连接
            
            using (SqlCommand command = new SqlCommand("INSERT INTO 员工表 " +//创建数据库命令对象
               "VALUES (@员工编号, @员工姓名,@基本工资,@工作评价,@所属部门)", con.sqlConnection))
            {
                command.Parameters.Add("@员工编号",//添加参数并赋值
                    SqlDbType.VarChar, 50, "员工编号").Value = this.textBox1.Text;
                
                command.Parameters.Add("@员工姓名",//添加参数并赋值
                    SqlDbType.VarChar, 50, "员工姓名").Value = this.textBox2.Text;
                
                command.Parameters.Add("@基本工资",//添加参数并赋值
                    SqlDbType.Float, 8, "基本工资").Value = Convert.ToString(this.textBox3.Text);
               
                command.Parameters.Add("@工作评价",//添加参数并赋值
                    SqlDbType.VarChar, 50, "工作评价").Value = this.textBox4.Text;
              
                command.Parameters.Add("@所属部门",//添加参数并赋值
                      SqlDbType.VarChar, 50, "所属部门").Value = this.textBox5.Text;
                //command.Parameters.Add("@所属部门",//添加参数并赋值
                    //SqlDbType.VarChar, 50, "所属部门").Value = "";
                command.ExecuteNonQuery();//执行SQL语句

                MessageBox.Show("添加数据成功");//弹出消息对话框
            }
            con.sqlConnection.Close();//关闭数据库连接
        }

 //**************************************************************************************************************

StringBuilder strSql=new StringBuilder();
   strSql.Append("insert into 外聘人员(");
   strSql.Append("身份证号码,员工姓名,员工性别,家庭住址,邮政编码,电话号码,出生日期,婚姻状况,雇用日期,起薪,目前薪资,加薪日期,工作代码,任职部门,直属主管,员工编号)");
   strSql.Append(" values (");
   strSql.Append("@身份证号码,@员工姓名,@员工性别,@家庭住址,@邮政编码,@电话号码,@出生日期,@婚姻状况,@雇用日期,@起薪,@目前薪资,@加薪日期,@工作代码,@任职部门,@直属主管,@员工编号)");
   SqlParameter[] parameters = {
     new SqlParameter("@身份证号码", SqlDbType.NVarChar,10),
     new SqlParameter("@员工姓名", SqlDbType.NVarChar,10),
     new SqlParameter("@员工性别", SqlDbType.Bit,1),
     new SqlParameter("@家庭住址", SqlDbType.NVarChar,41),
     new SqlParameter("@邮政编码", SqlDbType.NVarChar,5),
     new SqlParameter("@电话号码", SqlDbType.NVarChar,11),
     new SqlParameter("@出生日期", SqlDbType.SmallDateTime),
     new SqlParameter("@婚姻状况", SqlDbType.Bit,1),
     new SqlParameter("@雇用日期", SqlDbType.SmallDateTime),
     new SqlParameter("@起薪", SqlDbType.Money,8),
     new SqlParameter("@目前薪资", SqlDbType.Money,8),
     new SqlParameter("@加薪日期", SqlDbType.SmallDateTime),
     new SqlParameter("@工作代码", SqlDbType.NVarChar,3),
     new SqlParameter("@任职部门", SqlDbType.NVarChar,10),
     new SqlParameter("@直属主管", SqlDbType.NVarChar,10),
     new SqlParameter("@员工编号", SqlDbType.Int,4)};
   parameters[0].Value = model.身份证号码;
   parameters[1].Value = model.员工姓名;
   parameters[2].Value = model.员工性别;
   parameters[3].Value = model.家庭住址;
   parameters[4].Value = model.邮政编码;
   parameters[5].Value = model.电话号码;
   parameters[6].Value = model.出生日期;
   parameters[7].Value = model.婚姻状况;
   parameters[8].Value = model.雇用日期;
   parameters[9].Value = model.起薪;
   parameters[10].Value = model.目前薪资;
   parameters[11].Value = model.加薪日期;
   parameters[12].Value = model.工作代码;
   parameters[13].Value = model.任职部门;
   parameters[14].Value = model.直属主管;
   parameters[15].Value = model.员工编号;

****9999999999999999值得学习999999

        private void button2_Click(object sender, EventArgs e)
        {
             using (SqlCommand cmd = new SqlCommand())//创建SqlCommand对象
            {
                try
                {
                    cmd.Connection = con.sqlConnection;//设置连接属性
                    con.sqlConnection.Open();//打开数据库的连接
                    cmd.CommandType = CommandType.StoredProcedure;//设置命令类型
                    cmd.CommandText = "proc_insert";//存储过程
                    SqlParameter[] prams =//创建参数数组
                              {
                                new SqlParameter("@id", SqlDbType.VarChar, 8),
                                new SqlParameter("@name", SqlDbType.VarChar, 50),
                                new SqlParameter("@money", SqlDbType.Float),
                                new SqlParameter("@talk", SqlDbType.VarChar, 50),
                                new SqlParameter("@department", SqlDbType.VarChar, 50),
                              };
                    prams[0].Value = this.textBox1.Text;//设置参数值
                    prams[1].Value = this.textBox2.Text;//设置参数值
                    prams[2].Value = this.textBox3.Text;//设置参数值
                    prams[3].Value = this.textBox4.Text;//设置参数值
                    prams[4].Value = this.textBox5.Text;//设置参数值
                    foreach (SqlParameter parameter in prams)
                        cmd.Parameters.Add(parameter);//添加参数


                    SqlParameter sqlpar =//得到参数对象
                        cmd.Parameters.Add("@Return", SqlDbType.Int);


                    sqlpar.Direction =//设置参数类型
                        ParameterDirection.ReturnValue;//获取返回值


                    cmd.ExecuteNonQuery();//执行SQL语句
                    con.sqlConnection.Close();//关闭数据库的连接
                }
                catch (Exception eu)
                {
                    MessageBox.Show(eu.Message, "错误!");
                    con.sqlConnection.Close();//关数数据库连接
                    return;//退出事件
                }
                int i = Convert.ToInt16(cmd.Parameters["@Return"].Value.ToString());//返回影响的行数
                if (i == 1)
                {
                    MessageBox.Show("添加过程成功");//弹出消息对话框
                }
                else if (i == -1)
                {
                    MessageBox.Show("添加过程失败");//弹出消息对话框
                }
                showinfo();//显示添加后的结果
            }
        
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值