首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> ASP.NET技巧 -> dotnet下生成简单sql语句
dotnet下生成简单sql语句


文章类别:ASP.NET技巧 来源: 作者: 发表日期:2006-5-28 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

static public void insert_sql(string tablename,Hashtable param_employeefield,string connstring)
  {
   //System.Web.HttpContext.Current.Response.Write("xxx");
   Hashtable ht_field=new Hashtable();
   ht_field=getfieldtype(tablename,connstring); //表的字段
   string field_value;
   string field_type;//字段类型
   string str_sql_fieldname="insert into " + "tablename("; //插入语句
   string str_sql_fieldvalue=" values(";
   string str_sql;
   foreach(object obj_param in param_employeefield)
   {
    field_type=ht_field[obj_param.ToString()].ToString();//获取 int型 or 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)
  {
   Hashtable ht_field=new Hashtable();
   ht_field=getfieldtype(tablename,connstring);
   string field_value;
   string field_type;
   StringBuilder str_sql  = new StringBuilder();  
   str_sql.Append("update " + "tablename set ");
   string sql1;
   foreach(object obj_param in 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)+" where";
   nsn.core.SqlHelper.ExecuteNonQuery(connstring,CommandType.Text,sql1);
  }

  static protected string judgetype(string field_type,string field_value)
  {
   string str_value;
   switch(field_type)
   {
    case "int":     str_value=field_value;
     break;
    case "varchar": str_value="'"+field_value+"'";
     break;
    case "ntext":   str_value="'"+field_value+"'";
     break;
    case "datetime":str_value="'"+field_value+"'";
     break;
    case "tinyint": str_value=field_value;
     break;
    case "smallint": str_value=field_value;
     break;
   }
   return(field_type);
  }

  static protected Hashtable getfieldtype(string tablename,string connstring)
  {
   DataSet ds = new DataSet();
   Hashtable ht_field=new Hashtable();
   SqlParameter[] paramsToStore = new SqlParameter[1];
   paramsToStore[0] = new SqlParameter("@tablename", SqlDbType.NVarChar);
   paramsToStore[0].Direction=ParameterDirection.Input;
   paramsToStore[0].Value=tablename;
   
   ds=nsn.core.SqlHelper.ExecuteDataset(connstring,CommandType.StoredProcedure,"main_searchtable",paramsToStore);
   DataTable tbl=ds.Tables[0];
   foreach(DataRow row in tbl.Rows)
   {
   
    ht_field.Add(row["字段名"].ToString(),row["类型"].ToString());
    //System.Web.HttpContext.Current.Response.Write(row["字段名"].ToString());
   }
   return(ht_field);
  }

main_searchtable 存储过程是
CREATE PROCEDURE main_searchtable
@tablename nvarchar(50)
AS 
 
SELECT  
 表名=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.name 
 
  
FROM syscolumns a 
 left join systypes b on a.xtype=b.xusertype 
 inner join sysobjects d on a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties' 
 
 left join sysproperties f on d.id=f.id and f.smallid=0 
 
where d.name=@tablename    --如果只查询指定表,加上此条件 
order by a.id,a.colorder
GO

http://liuxiaoyi666.cnblogs.com/archive/2006/05/28/411082.html

上一篇:CSS+DIV设计实例:不同色链接和其下划线 下一篇:系统恢复后,通过sqlserver服务管理器启动出现“指定的服务未安装”的解决方法
本栏目热门文章
·如何实现无刷新的DropdownList联动效果 2005-10-4
·使用HttpWebRequest向网站模拟上传数据 2005-10-4
·当DataSet中包含主/子表时,Update更新步骤 2005-10-6
·ASP.NET2.0实现无刷新客户端回调 2005-11-13
·ASP.NET中文件上传下载方法集合 2006-5-28
·分享个极好的无刷新二级联动下拉列表,同样适用与firefox 2005-10-19
·在Web DataGrid中当鼠标移到某行与离开时行的颜色发生改变( 2005-10-4
·ASP.NET中实现Flash与.NET的紧密集成 2005-11-21
·关于Asp.net页面Page_Load被执行两次的问题 2005-10-4
·ASP.NET极限:页面导航 (翻译) 2005-10-8
新近更新文章
·在VS2003中直接用DREAMWEAVER8打开ASPX文件 2006-6-22
·asp.net2.0中异步调用WebService(异步页) 2006-6-22
·ASP.NET2.0数据库入门之常见错误 2006-6-22
·ASP.NET 2.0中XSLT的使用 2006-6-22
·.Net2.0 使用ConfigurationManager读写配置 2006-6-22
·.net 做的IP 访问限制 2006-6-22
·ASP.Net2.0 GridView 多列排序,显示排序图标,分页 2006-6-22
·数据岛出到Excel最为简易的方法 2006-6-20
·权限树中Checkbox的操作[Asp.Net2.0] 2006-6-20
·使用Data Access Application Block 得到 2006-6-20
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: