在向数据库插入数据时,怎么指定参数使用默认值?
发布时间: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
|
实作代码应该是这样: 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; ...//执行略 (编辑:草根网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐

浙公网安备 33038102330554号