정적 공개 무효 insert_sql(문자열 테이블 이름, 해시 테이블 param_employeefield, 문자열 connstring)
{
//System.Web.HttpContext.Current.Response.Write("xxx");
해시테이블 ht_field=new Hashtable();
ht_field=getfieldtype(테이블이름,connstring); //설명의 글자수
문자열 필드_값;
문자열 field_type;//문자열 유형
string str_sql_fieldname="insert into " + "tablename("; //插入语句
문자열 str_sql_fieldvalue=" 값(";
문자열 str_sql;
foreach(param_employeefield의 obj_param 객체)
{
field_type=ht_field[obj_param.ToString()].ToString();//获取 int型 또는 varchar型等等
field_value=param_employeefield[obj_param].ToString();
str_sql_fieldname+=param_employeefield[obj_param].ToString()+",";
str_sql_fieldvalue+=judgetype(field_type,field_value)+",";
}
str_sql_fieldname=str_sql_fieldname.Substring(1,str_sql_fieldname.Length)+")";
str_sql_fieldvalue=str_sql_fieldvalue.Substring(1,str_sql_fieldvalue.Length)+")";
str_sql=str_sql_fieldname+str_sql_fieldvalue;
nsn.core.SqlHelper.ExecuteNonQuery(connstring,CommandType.Text,str_sql);
}
static public void update_sql(string tablename,Hashtable param_employeefield,string connstring)
{
해시테이블 ht_field=new Hashtable();
ht_field=getfieldtype(테이블이름,connstring);
문자열 필드_값;
문자열 field_type;
StringBuilder str_sql = 새로운 StringBuilder();
str_sql.Append("update " + "테이블 이름 세트 ");
문자열 sql1;
foreach(param_employeefield의 obj_param 객체)
{
field_type=ht_field[obj_param.ToString()].ToString();
field_value=param_employeefield[obj_param].ToString();
str_sql.Append(param_employeefield[obj_param].ToString()+"="+judgetype(field_type,field_value)+",");
}
sql1=str_sql.ToString().Substring(1,str_sql.ToString().Length-1)+" 여기서";
nsn.core.SqlHelper.ExecuteNonQuery(connstring,CommandType.Text,sql1);
}
정적 보호 문자열 Judgetype(string field_type,string field_value)
{
문자열 str_value;
스위치(필드_유형)
{
케이스 "int": str_value=field_value;
부서지다;
케이스 "varchar": str_value="'"+field_value+"'";
부서지다;
케이스 "ntext": str_value="'"+field_value+"'";
부서지다;
케이스 "datetime":str_value="'"+field_value+"'";
부서지다;
케이스 "tinyint": str_value=field_value;
부서지다;
케이스 "smallint": str_value=field_value;
부서지다;
}
return(필드_유형);
}
정적 보호 Hashtable getfieldtype(string tablename,string connstring)
{
DataSet ds = 새로운 DataSet();
해시테이블 ht_field=new Hashtable();
SqlParameter[] paramsToStore = 새로운 SqlParameter[1];
paramsToStore[0] = new SqlParameter("@tablename", SqlDbType.NVarChar);
paramsToStore[0].Direction=ParameterDirection.Input;
paramsToStore[0].Value=테이블이름;
ds=nsn.core.SqlHelper.ExecuteDataset(connstring,CommandType.StoredProcedure,"main_searchtable",paramsToStore);
데이터테이블 tbl=ds.Tables[0];
foreach(tbl.Rows의 DataRow 행)
{
ht_field.Add(row["字段name"].ToString(),row["类型"].ToString());
//System.Web.HttpContext.Current.Response.Write(row["字段name"].ToString());
}
return(ht_field);
}
main_searchtable 存储过程是
프로시저 생성 main_searchtable
@테이블이름 nvarchar(50)
처럼
선택하다
설명=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
글자수=a.colorder,
이름=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
类型=b.이름
syscolumns에서
a.xtype=b.xusertype의 왼쪽 조인 시스템 유형 b
a.id=d.id 및 d.xtype='U' 및 d.name<>'dtproperties'에서 내부 조인 sysobject d
d.id=f.id 및 f.smallid=0에서 왼쪽 조인 sysproperties f
여기서 d.name=@tablename --如果只查询指定表,加上此条件
a.id,a.colorder로 주문
GO
http://liuxiaoyi666.cnblogs.com/archive/2006/05/28/411082.html