params object[] 问题高手帮下忙谢谢!
函数定义了多变量:params object[] para,如下:
public bool InsertRecordInToTable(string tableName,params object[] para)
{string flds= " ";
string vals= " ";
for(int i=0;i <para.Length;i+=3)
{
flds += para[i+1].ToString()+ ", ";
if ((bool)para[i])
{
vals += para[i+2].ToString()+ ", ";
}
else
{
vals += " ' "+ para[i+2].ToString().Replace( " ' ", " ")+ " ', ";
}
}
return ExecuteSql( "insert into "+tableName+ "( "+flds.Remove(flds.Length-1,1)+ ") values( "+vals.Remove(vals.Length-1,1)+ ") ");}
为什么在调用的时候要写成:
this.proxy.InsertRecordInToTable( "t_carparkgroup ",false, "carpark_group_id ",carpark_group_id,false, "carpark_group_name ",carpark_group_name,false, "district_id ",district_id,
true, "total_parking_no ",0,true, "current_parking_no ",0,true, "update_time ", "sysdate ",true, "setup_time ", "sysdate ")
那些 false,true是做什么的啊?
[解决办法]
if ((bool)para[i])//每行第一个参数 true or false;
para[i+1] //第二个 string
para[i+2] //第三个 id
[解决办法]
params用于指定参数数目可变的参数.