`
ruilin215
  • 浏览: 1147722 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

试用EF开发WEB应用程序(11): 在线留言系统

阅读更多

题记:用“易语言.飞扬”(EF)开发WEB应用程序,此前还没有先例。但因为EF本地开发包(EFNDK)已经发布,用C/C++开发一个EF类库,使其支持EF开发WEB应用程序,应该并非难事。当然也可想而知,其中必有诸多难点有待解决。此系列文章,为本人探索过程之记录,对外人未必有多大价值。如有网友乐观其事,还请理性待之。作者:liigo。转载请务必注明出处:http://blog.csdn.net/liigo/在线留言


试用EF开发WEB应用程序(11):在线留言系统

在线留言系统入口 (非常感谢好友龚辟愚提供网络服务器)

此留言板的“易语言.飞扬”(EF)完整源代码如下:

引入fastcgi,sqlite,工具;

公开类启动类
{
静态Sqlite数据库_db;

公开静态启动()
{
_db
=newSqlite数据库();
_db.打开(
"../db/msgboard.file",true);
if(_db.表是否存在("messages")==false)
createTable();

FCGIfcgi
=newFCGI;
while(fcgi.Accept()>=0)
{
if(fcgi.REQUEST_METHOD.到小写()=="post")
fcgi.ReadContentAsQueryString();

文本html
=html_template.替换全部("$(title)","留言板(由EF开发)");

if(fcgi.QUERY_STRING("name")!=""||fcgi.QUERY_STRING("message")!="")
insertMessage(fcgi);

//deleteallmessages
if(fcgi.QUERY_STRING("cleandb")=="byliigo")
_db.执行SQL(
"deletefrommessageswhere1=1");

stringmessages;
intcount;
(messages,count)
=listAllMessages();
html
=html.替换("$(messages)",messages);
html
=html.替换("$(count)",count.到文本());

fcgi.Output(html.到UTF8());
}
_db.关闭();
}

privatestaticcreateTable()
{
Sqlite表结构tdef
=newSqlite表结构();
tdef.添加字段(
"id",Sqlite字段类型.主键整数);
tdef.添加字段(
"name",Sqlite字段类型.文本);
tdef.添加字段(
"message",Sqlite字段类型.文本);
tdef.添加字段(
"ip",Sqlite字段类型.文本);
tdef.添加字段(
"date",Sqlite字段类型.文本);
_db.创建表(
"messages",tdef);
}

privatestaticboolinsertMessage(FCGIfcgi)
{
privatestaticstringGetDate()
{
日期时间类t
=new日期时间类();
returnt.年().到文本()+"/"+t.月().到文本()+"/"+t.日().到文本()+""+t.时().到文本()+":"+t.分().到文本()+":"+t.秒().到文本();
}

stringname
=fcgi.QUERY_STRING("name");
if(name=="")name="EF爱好者";
stringmessage
=fcgi.QUERY_STRING("message");
if(message=="")message="他/她很懒,什么都没说:)";
stringip
=fcgi.REMOTE_ADDR;
stringdate
=GetDate();

stringsql
="insertintomessages(name,message,ip,date)values('"+name+"','"+message+"','"+ip+"','"+date+"')";
return_db.执行SQL(sql);
}

privatestaticstring,intlistAllMessages()
{
privatestaticstringfixHTMLChars(strings)
{
s
=s.替换全部("&","&");
s
=s.替换全部("<","&lt;");
s
=s.替换全部(">","&gt;");

//someonenotethis?:)
s=s.替换全部("[b]","<b>");s=s.替换全部("[/b]","</b>");
s
=s.替换全部("[red]","<fontcolor="red">");s=s.替换全部("[/red]","</font>");
s
=s.替换全部("[blue]","<fontcolor="blue">");s=s.替换全部("[/blue]","</font>");
s
=s.替换全部("[green]","<fontcolor="green">");s=s.替换全部("[/green]","</font>");
returns;
}

privatestaticstringformatMessage(stringname,stringmessage,stringip,stringdate)
{
staticstringmsg_template="<p>$(name)($(ip))于$(date)留言:$(message)</p> ";
stringmsg
=msg_template.替换("$(name)",name);
msg
=msg.替换("$(ip)",ip);
msg
=msg.替换("$(message)",fixHTMLChars(message));
msg
=msg.替换("$(date)",date);
returnmsg;
}

Sqlite记录集query
=newSqlite记录集(_db,"select*frommessagesorderby_ROWID_desc");
stringmessages
="";
intcount=0;
if(query.打开())
{
count
=query.取记录数();
while(query.到下一记录())
{
messages
+=formatMessage(query.读字段值("name",Sqlite字段类型.文本),query.读字段值("message",Sqlite字段类型.文本),query.读字段值("ip",Sqlite字段类型.文本),query.读字段值("date",Sqlite字段类型.文本));
}
}
return(messages,count);
}

常量文本html_template
=["Content-type:text/html

<html><head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>$(title)</title>
</head>
<body>
<h1>$(title)</h1>
<hr></hr>

<formmethod="post">
<p>姓名:<inputtype="text"name="name"size=20/></p>
<p>留言:<inputtype="text"name="message"size=100/></p>

<p><inputtype="submit"value="提交留言"></input></p>
</form>

<p><ahref="msgboard.txt"target="_blank">此留言板的EF源代码</a></p>

<hr></hr>
<h1>所有留言(共$(count)条)</h1>

$(messages)

<hr></hr>
<p>byliigo,<ahref="http://blog.csdn.net/liigo/">http://blog.csdn.net/liigo/</a></p>
</body>
</html>
"];
}
分享到:
评论

相关推荐

    web网页设计(c#):学生管理系统

    【标题】"Web网页设计(C#):学生管理系统"是一个使用C#编程语言和Web技术构建的应用程序,主要用于管理教育机构中的学生信息。这个系统通常包括对学生数据的增、删、改、查等基本功能,是计算机科学尤其是软件工程...

    使用C#开发数据库应用程序系统ACCP8.0

    在IT行业中,数据库应用程序系统是不可或缺的一部分,它们用于存储、管理和检索数据,为各种业务...对于希望在IT领域从事数据库应用开发的人员来说,“使用C#开发数据库应用程序系统ACCP8.0”是一次宝贵的学习经历。

    EFCore+WebAPi增删改查

    在本项目中,"EFCore+WebApi增删改查"是一个使用Entity Framework Core(简称EFCore)和Web API技术构建的.NET应用示例。这个框架主要用于演示如何通过Web服务接口进行数据操作,如添加、删除、修改和查询,前端展示...

    一个应用.Net中C#技术开发的实用Web案例

    在.NET框架下,C#是一种广泛使用的编程语言,尤其在开发Web应用程序时。这个案例——"一个应用.Net中C#技术开发的实用Web案例",展示了如何利用C#的强大力量来构建一个功能完善的B2C(Business to Consumer)在线...

    基于.netCore 6 +EF 实现webApi增删查改基础应用,开箱即用

    在本文中,我们将深入探讨如何使用`.NET Core 6`框架和`Entity Framework (EF)`来构建一个功能完备的Web API服务,实现数据的增、删、查、改(CRUD)操作。`.NET Core 6`是微软推出的一个高性能、跨平台的开源开发...

    ASP.NET数据库应用程序开发教程

    ASP.NET Core同样支持数据库应用开发,并与EF Core紧密结合。 九、部署与调试 在完成ASP.NET数据库应用程序的开发后,可以通过IIS或IIS Express进行本地或远程部署。Visual Studio集成的调试工具能帮助开发者定位并...

    asp.net源码:WebSamples,是WEB程序开发的好示例。

    ASP.NET 是微软公司推出的用于构建动态网站、Web应用程序和Web服务的一种强大框架。WebSamples 是一个包含多个ASP.NET示例的集合,它为开发者提供了学习和理解ASP.NET特性和功能的宝贵资源。在这个压缩包中,...

    Dome-ASP.NET CORE 6 webapi 使用 EF DBFirst 配合 sql server

    ASP.NET Core 6 WebAPI与Entity Framework (EF) DBFirst结合使用是开发高效、数据库驱动的Web服务的常见方法。这个技术栈允许开发者利用SQL Server的强大功能,同时借助EF简化数据访问层的实现。以下是对这个主题的...

    【ASP.Net Core Web应用程序】 创建数据库

    ASP.NET Core Web应用程序是Microsoft开发的一个跨平台的框架,用于构建现代、高性能的Web应用。在本场景中,我们关注的重点是如何在ASP.NET Core中创建数据库。这通常涉及到使用Entity Framework Core (EF Core),...

    web聊天室(.net core MVC + signalr + EF + Authorize)

    "web聊天室(.net core MVC + signalr + EF + Authorize)" 描述了一款基于.NET Core MVC框架、使用SignalR实现实时通信、Entity Framework(EF)进行数据库操作,并结合Authorize进行权限控制的Web聊天室应用。...

    全堆栈ASP。NET核心(.NET 8)web应用程序,具有CRUD、N轮胎体系结构、验证功能.zip

    ASP.NET Core是微软开发的一个开源、跨平台的框架,用于构建高性能、现代化的互联网规模的应用程序。在这个全堆栈的ASP.NET Core项目中,我们关注的是.NET 8版本,它带来了许多新特性和性能改进。这个项目展示了如何...

    c# MVC完整项目 EF连接数据库 webapi

    首先,C# MVC(Model-View-Controller)是一种用于构建可维护性和可测试性的Web应用程序的设计模式。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责业务逻辑和数据...

    Asp.Net Core Web应用程序入门源码

    这个源码包“KibaAspNetCore-master”是针对初学者设计的,旨在帮助他们理解并入门Asp.Net Core Web应用程序的开发。 1. **Asp.Net Core基础** Asp.Net Core是对经典Asp.Net的重构,它采用模块化设计,允许开发者...

    Laborator-DAW:实验室和材料-Web应用程序开发

    实验室和材料-Web应用程序开发 :warning: :warning: 考试信息(技巧和窍门) 使用脚手架或尝试重现自动创建部分(使用实体框架的带有视图的控制器) 对于数据表,您可以使用以下示例: 在REPO的解决方案领域中...

    angularjs+webapi+EF

    标题中的“angularjs+webapi+EF”是一个典型的前后端分离的Web开发技术组合,其中AngularJS是前端框架,WebAPI是后端数据接口,而Entity Framework(EF)则是一种常用的ORM(对象关系映射)工具,用于简化数据库操作...

    phpweb 留言模块

    总结,phpWeb留言模块是Web应用程序中的一个实用组件,它涉及前端界面设计、后端数据处理、数据库管理和安全性等多个方面。开发这样一个模块需要对PHP编程、数据库操作和Web安全有深入理解。通过不断优化和完善,...

    学习C# .Net6+EFcore+MySQL.zip

    这是一套完整的教程,旨在帮助初学者和有一定经验的开发者掌握现代Web应用程序开发的核心技术。 C#是微软公司推出的面向对象的编程语言,广泛应用于Windows平台、移动设备以及游戏开发。.NET 6是.NET框架的最新版本...

    MVC_EF框架_Bootstrap示例

    基于EF+MVC+Bootstrap的通用管理系统。 Framework 业务无关的底层通用机制及功能 Model基类:提供数据传输和底层的最基本的基类及接口 DAL底层:基于EF code first,提供Repository泛型方法及写历史日志 Untility:...

    毕业设计:基于asp.netCore+EFCore+mysql+layui的CRM系统.zip

    1. asp.netCore:asp.netCore是微软开发的一款开源、跨平台的Web应用程序框架,用于构建高效、现代化的互联网应用。它提供了强大的依赖注入、中间件、测试支持等功能,且性能优秀,支持多语言环境,使开发者能够构建...

    MVC+EF框架+EasyUI实现权限管理 源码程序

    MVC是一种设计模式,广泛应用于Web应用开发中。它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理业务逻辑和数据管理,视图负责展示用户界面,而控制器则作为两者...

Global site tag (gtag.js) - Google Analytics