static public void insert_sql (string tablename, Hashtable param_employeefield, string connstring)
{
//System.Web.HttpContext.Current.Response.Write("xxx");
Table de hachage ht_field=new Hashtable();
ht_field=getfieldtype(tablename,connstring); //表的字段
chaîne valeur_champ ;
string field_type;//字段类型
string str_sql_fieldname="insérer dans " + "tablename("; //插入语句
string str_sql_fieldvalue="valeurs(";
chaîne str_sql ;
foreach (objet obj_param dans param_employeefield)
{
field_type=ht_field[obj_param.ToString()].ToString();//获取 int ou 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)
{
Table de hachage ht_field=new Hashtable();
ht_field=getfieldtype(tablename,connstring);
chaîne valeur_champ ;
chaîne type_champ ;
StringBuilder str_sql = new StringBuilder();
str_sql.Append("update " + "ensemble de noms de table ");
chaîne sql1 ;
foreach (objet obj_param dans param_employeefield)
{
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)+" où";
nsn.core.SqlHelper.ExecuteNonQuery(connstring,CommandType.Text,sql1);
}
chaîne protégée statique Judgetype (string field_type, string field_value)
{
chaîne str_value ;
commutateur (type_champ)
{
case "int": str_value=field_value ;
casser;
case "varchar": str_value="'"+field_value+"'";
casser;
case "ntext": str_value="'"+field_value+"'";
casser;
case "datetime":str_value="'"+field_value+"'";
casser;
cas "tinyint": str_value=field_value ;
casser;
cas "smallint": str_value=field_value ;
casser;
}
return (type_champ);
}
Table de hachage protégée statique getfieldtype (string tablename, string connstring)
{
DataSetds = new DataSet();
Table de hachage ht_field=new Hashtable();
SqlParameter[] paramsToStore = new SqlParameter[1];
paramsToStore[0] = new SqlParameter("@tablename", SqlDbType.NVarChar);
paramsToStore[0].Direction=ParameterDirection.Input;
paramsToStore[0].Value=nomdetable;
ds=nsn.core.SqlHelper.ExecuteDataset(connstring,CommandType.StoredProcedure,"main_searchtable",paramsToStore);
DataTable tbl=ds.Tables[0];
foreach (ligne DataRow dans tbl.Rows)
{
ht_field.Add(row["字段名"].ToString(),row["类型"].ToString());
//System.Web.HttpContext.Current.Response.Write(row["字段名"].ToString());
}
retour(ht_field);
}
main_searchtable 存储过程是
CRÉER UNE PROCÉDURE main_searchtable
@tablename nvarchar(50)
COMME
SÉLECTIONNER
表名=cas où a.colorder=1 puis d.name else '' fin,
表说明=cas où a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=cas où COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 alors '√'else '' se termine,
类型=b.name
DE syscolumns un
rejoindre à gauche les systypes b sur a.xtype=b.xusertype
jointure interne sysobjects d sur a.id=d.id et d.xtype='U' et d.name<>'dtproperties'
rejoindre à gauche sysproperties f sur d.id=f.id et f.smallid=0
où d.name=@tablename --如果只查询指定表,加上此条件
commander par a.id,a.colorder
ALLER
http://liuxiaoyi666.cnblogs.com/archive/2006/05/28/411082.html