C#数据库之二

执行带参数的SQL语句:

     (1)如果我们的SQL语句条件很复杂,并且需要判断很多变量的值,例如

         " Select * from TestTable where  Field_a = "+m_nA+" and Field_b = ' " + m_cB +" ' and Field_c = "+m_nC  ....."

         上面的m_nA,m_cB等都是一些变量,上面那样写是很容易写错(单引号),而且看起来似乎很复杂,那我们可以用另外一种方式:

        string sql="select * from where Field_a = @param_a and Field_b = @param_b and Field_c=@param_c...."

         上面就定义了3个参数@param_a,@param_b....  ,他们的类型就封装了,在SQL里面不用我们去考虑了,

          定义参数的方式如下

         ......................

          SqlParameter  param1=new SqlParameter("@param_a",SqlDbType.Int);//整型参数

          SqlParameter  param2=new SqlParameter("@param_b",SqlDbType.VarChar);//varchar

          SqlParameter  param2=new SqlParameter("@param_c",SqlDbType.Int);//Int

         

         SqlCommand sqlCmd=new SqlCommand(sql,conn);//这里的conn就是上节提到的SqlConnection,呵呵

         sqlCmd.Parameters.Add(param1);

         sqlCmd.Parameters.Add(param2);

          sqlCmd.Parameters.Add(param3);

 

         .............

         sqlCmd.ExecuteNoQuery();

         ..........

    (2)执行存储过程

         执行存储过程的时候,一般都是需要带参数的,2者结合怎么办呢?方法如下:

         。。。。。。。

         string strProcedureName = "DB_SP_InsertNewUser";//存储过程名

         SqlCommand sqlCmd=new SqlCommand(strProcedureName,conn);//指定存储过程

 

         SqlTranscation tran= conn.BeginTransaction();//一个事物

 

         sqlCmd.Transcation = tran;

       

         sqlCmd.CommandType=CommandType.StoreProcedure;//指定命令类型(存储过程)

 

         //后面同上,定义SQL语句和添加参数......

          

         try{//一定要处理异常

           

             sqlCmd.ExecuteNoQuery();//最后执行

             tran.Commit();

            }

           catch(Exception e)

            {

                tran.RollBack();

            }

           finally

           {

             conn.Close();

            }

         ..........

     

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值