db2版本:db 2 udb 8.x for linux
在.net 中 ,用odbc调用db2存储过程,不能使用这种类似oledb(ado)调用存储过程的常用方法:
system.data.odbc.odbccommand cmd=null;
system.data.odbc.odbcconnection con =new system.data.odbc.odbcconnection(system.configuration.configurationsettings.appsettings["connectionstring"]);
cmd=new system.data.odbc.odbccommand("reportplan",con) ;
cmd.commandtype=system.data.commandtype.storedprocedure;
con.open();
parm=cmd.createparameter();
parm=new system.data.odbc.odbcparameter("v_baseno",system.data.odbc.odbctype.varchar,20);
cmd.parameters.add(parm);
parm=new system.data.odbc.odbcparameter("tmp_v_start",system.data.odbc.odbctype.varchar,20);
cmd.parameters.add(parm);
parm=new system.data.odbc.odbcparameter("tmp_v_end",system.data.odbc.odbctype.varchar,20);
cmd.parameters.add(parm);
parm=new system.data.odbc.odbcparameter("v_ip",system.data.odbc.odbctype.varchar,50);
cmd.parameters.add(parm);
cmd.parameters["v_baseno"].value= (dropdownlist1.selecteditem.value);
cmd.parameters["tmp_v_start"].value= startdate;
cmd.parameters["tmp_v_end"].value=enddate;
cmd.parameters["v_ip"].value= request.userhostname;
cmd.executenonquery();
只能使用这种参数化方法:
cmd = con.createcommand();
cmd.commandtext = "{ call reportplan(?,?,?,?)}";
odbcparameter p1 = cmd.createparameter();
p1.value =dropdownlist1.selecteditem.value;
p1.odbctype = odbctype.varchar;
cmd.parameters.add(p1);
odbcparameter p2 = cmd.createparameter();
p2.value =startdate;
p2.odbctype = odbctype.varchar;
cmd.parameters.add(p2);
odbcparameter p3 = cmd.createparameter();
p3.value =enddate;
p3.odbctype = odbctype.varchar;
cmd.parameters.add(p3);
odbcparameter p4 = cmd.createparameter();
p4.value =request.userhostname;
p4.odbctype = odbctype.varchar;
cmd.parameters.add(p4)
cmd.executenonquery();
新闻热点
疑难解答