仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 497|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之dotnet下天生复杂sql语句

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:39:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!sql|语句staticpublicvoidinsert_sql(stringtablename,Hashtableparam_employeefield,stringconnstring)
{
//System.Web.HttpContext.Current.Response.Write("xxx");
Hashtableht_field=newHashtable();
ht_field=getfieldtype(tablename,connstring);//表的字段
stringfield_value;
stringfield_type;//字段范例
stringstr_sql_fieldname="insertinto"+"tablename(";//拔出语句
stringstr_sql_fieldvalue="values(";
stringstr_sql;
foreach(objectobj_paraminparam_employeefield)
{
field_type=ht_field[obj_param.ToString()].ToString();//猎取int型orvarchar型等等
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);
}
staticpublicvoidupdate_sql(stringtablename,Hashtableparam_employeefield,stringconnstring)
{
Hashtableht_field=newHashtable();
ht_field=getfieldtype(tablename,connstring);
stringfield_value;
stringfield_type;
StringBuilderstr_sql=newStringBuilder();
str_sql.Append("update"+"tablenameset");
stringsql1;
foreach(objectobj_paraminparam_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);
}
staticprotectedstringjudgetype(stringfield_type,stringfield_value)
{
stringstr_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);
}
staticprotectedHashtablegetfieldtype(stringtablename,stringconnstring)
{
DataSetds=newDataSet();
Hashtableht_field=newHashtable();
SqlParameter[]paramsToStore=newSqlParameter[1];
paramsToStore[0]=newSqlParameter("@tablename",SqlDbType.NVarChar);
paramsToStore[0].Direction=ParameterDirection.Input;
paramsToStore[0].Value=tablename;

ds=nsn.core.SqlHelper.ExecuteDataset(connstring,CommandType.StoredProcedure,"main_searchtable",paramsToStore);
DataTabletbl=ds.Tables[0];
foreach(DataRowrowintbl.Rows)
{

ht_field.Add(row["字段名"].ToString(),row["范例"].ToString());
//System.Web.HttpContext.Current.Response.Write(row["字段名"].ToString());
}
return(ht_field);
}
main_searchtable存储历程是
CREATEPROCEDUREmain_searchtable
@tablenamenvarchar(50)
AS

SELECT
表名=casewhena.colorder=1thend.nameelseend,
表申明=casewhena.colorder=1thenisnull(f.value,)elseend,
字段序号=a.colorder,
字段名=a.name,
标识=casewhenCOLUMNPROPERTY(a.id,a.name,IsIdentity)=1then√elseend,
范例=b.name


FROMsyscolumnsa
leftjoinsystypesbona.xtype=b.xusertype
innerjoinsysobjectsdona.id=d.idandd.xtype=Uandd.namedtproperties

leftjoinsyspropertiesfond.id=f.idandf.smallid=0

whered.name=@tablename--假如只查询指定表,加上此前提
orderbya.id,a.colorder
GO
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。
老尸 该用户已被删除
沙发
发表于 2015-1-19 20:42:30 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-19 20:42:31 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
海妖 该用户已被删除
地板
发表于 2015-1-26 20:08:51 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
因胸联盟 该用户已被删除
5#
发表于 2015-2-4 20:24:47 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-1 03:06:44 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-10 12:30:12 | 只看该作者
那么,ASP.Net有哪些改进呢?
第二个灵魂 该用户已被删除
8#
发表于 2015-3-17 06:58:30 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
若天明 该用户已被删除
9#
 楼主| 发表于 2015-3-24 00:36:10 | 只看该作者
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 07:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表