加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

在向数据库插入数据时,怎么指定参数使用默认值?

发布时间:2022-12-10 11:32:40 所属栏目:教程 来源:
导读:  实作代码应该是这样:

  exec sp_executesql N'INSERT INTO employee (emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date ) VALUES( @emp_id, @fname, @minit, @lname, @job_id, @job
  实作代码应该是这样:
 
  exec sp_executesql N'INSERT INTO employee (emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date ) VALUES( @emp_id, @fname, @minit, @lname, @job_id, @job_lvl, @pub_id, default)',
 
  N'@emp_id char(9),@fname varchar(21),@minit char(1),@lname varchar(30),@job_id smallint,@job_lvl tinyint,@pub_id char(4)',
 
  @emp_id = 'MMM42628M', @fname = 'Paolo', @minit = 'M', @lname = 'Accorti', @job_id = 13, @job_lvl = NULL, @pub_id = '0877'
 
  这二者效率没有差别,我先建议你动态创建SQL语句,不是让你放弃使用Parameter,只是说使用某个字段默认值的时候,动态变化一下SQL语句,少加一个参数
 
  你说的"如果分情况处理,构建 不同的CMDSTRING 和不同的参数列表。结构会有很大的问题。"是正确的,其实代码结构清晰一点,也很好实现数据库插入操作,比如:
 
  string sql = "insert into tableA( FA,FB,FC ) values({0})";
 
  string parameterList = string.Empty;
 
  ArrayList parameters = new ArrayList();
 
  if(条件A)
 
  {
 
  parameterList += ",@FA";
 
  SqlParameter p = new SqlParameter(...); //略
 
  p.Value = ...//赋值略
 
  怎么插入decimal类型的数据_mysql插入数据_数据库插入操作
 
  parameters.Add( p );
 
  }
 
  else
 
  parameterList += ",Default";
 
  if(条件B)
 
  {
 
  parameterList += ",@FB";
 
  SqlParameter p = new SqlParameter(...); //略
 
  p.Value = ...//赋值略
 
  parameters.Add( p );
 
  }
 
  else
 
  parameterList += ",Default";
 
  if(条件C)
 
  mysql插入数据_怎么插入decimal类型的数据_数据库插入操作
 
  {
 
  parameterList += ",@FC";
 
  SqlParameter p = new SqlParameter(...); //略
 
  p.Value = ...//赋值略
 
  parameters.Add( p );
 
  }
 
  else
 
  parameterList += ",Default";
 
  SqlParameter[] ps = (SqlParameter[])patameters.ToArray( typeof(SqlParameter) );
 
  foreach( SqlParameter p in ps )
 
  cmd.Parameters.Add( p );
 
  parameterList = parameterList.Remove(0,1); //删除第一个逗号
 
  sql = string.Format( sql,parameterList );
 
  cmd.CommandText = sql;
 
  ...//执行略
 

(编辑:草根网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章