static public void insert_sql(cadena nombre de tabla,Hashtable param_employeefield,cadena connstring)
{
//System.Web.HttpContext.Current.Response.Write("xxx");
Hashtable ht_field=nueva Hashtable();
ht_field=getfieldtype(nombre de tabla, cadena de conexión); //表的字段
cadena valor_campo;
cadena campo_tipo;//字段类型
string str_sql_fieldname="insertar en " + "nombretabla("; //插入语句
cadena str_sql_fieldvalue=" valores(";
cadena str_sql;
foreach(objeto obj_param en param_employeefield)
{
field_type=ht_field[obj_param.ToString()].ToString();//获取 int型 o varchar型等等
field_value=param_employeefield[obj_param].ToString();
str_sql_fieldname+=param_employeefield[obj_param].ToString()+",";
str_sql_fieldvalue+=jueztype(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(cadena nombre de tabla,Hashtable param_employeefield,cadena connstring)
{
Hashtable ht_field=nueva Hashtable();
ht_field=getfieldtype(nombre de tabla, cadena de conexión);
cadena valor_campo;
tipo de campo de cadena;
StringBuilder str_sql = nuevo StringBuilder();
str_sql.Append("actualizar " + "conjunto de nombre de tabla ");
cadena sql1;
foreach(objeto obj_param en 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().Longitud-1)+" donde";
nsn.core.SqlHelper.ExecuteNonQuery(connstring,CommandType.Text,sql1);
}
tipo de juez de cadena protegida estática (tipo de campo de cadena, valor de campo de cadena)
{
cadena str_value;
cambiar(tipo_campo)
{
caso "int": str_value=field_value;
romper;
caso "varchar": str_value="'"+field_value+"'";
romper;
caso "ntext": str_value="'"+field_value+"'";
romper;
caso "fecha y hora":str_value="'"+field_value+"'";
romper;
caso "tinyint": str_value=field_value;
romper;
caso "smallint": str_value=field_value;
romper;
}
retorno(tipo_campo);
}
tipo de campo Hashtable protegido estático (nombre de tabla de cadena, cadena de conexión)
{
Conjunto de datos ds = nuevo Conjunto de datos();
Hashtable ht_field=nueva Hashtable();
SqlParameter[] paramsToStore = nuevo SqlParameter[1];
paramsToStore[0] = new SqlParameter("@tablename", SqlDbType.NVarChar);
paramsToStore[0].Direction=ParameterDirection.Input;
paramsToStore[0].Value=nombre de tabla;
ds=nsn.core.SqlHelper.ExecuteDataset(connstring,CommandType.StoredProcedure,"main_searchtable",paramsToStore);
Tabla de datos tbl=ds.Tables[0];
foreach (fila DataRow en tbl.Rows)
{
ht_field.Add(row["字段名"].ToString(),row["类型"].ToString());
//System.Web.HttpContext.Current.Response.Write(row["字段名"].ToString());
}
retorno(ht_field);
}
main_searchtable
CREAR PROCEDIMIENTO main_searchtable
@nombretabla nvarchar(50)
COMO
SELECCIONAR
表名=caso cuando a.colorder=1 luego d.name else '' final,
表说明=caso cuando a.colorder=1 entonces isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.nombre,
标识=caso cuando COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 y luego '√'else '' final,
类型=b.nombre
DE columnas de sistemas a
combinación izquierda de tipos de sistema b en a.xtype=b.xusertype
sysobjects de unión interna d en a.id=d.id y d.xtype='U' y d.name<>'dtproperties'
unión izquierda sysproperties f en d.id=f.id y f.smallid=0
donde d.nombre=@nombretabla --如果只查询指定表,加上此条件
ordenar por a.id,a.colorder
IR
http://liuxiaoyi666.cnblogs.com/archive/2006/05/28/411082.html