2023年6月21日发(作者:)
Flex集成.Net操作数据库(1简单数据)Flex集成/doc/ 实现对数据库的操作⾸先安装FluorineFx,开源项⽬FluorineFx就是专门针对.NET平台与Flex通信提供的AMF协议通信⽹关,我们可以通过FluorineFx很⽅便的完成与.NET的通信。FluorineFx官⽅提供了安装包的下载和在线⽂档,可以帮助我们有效的利⽤FluorineFx来开发。FluroineFx官⽅⽹站:/doc/ /FluroineFx下载地址:/doc/ /uroineFx在线⽂档:/doc/ /docs/fluorine/运⾏Microsoft Visual Studio 2005(2008也可),选择⽂件---->新建---->⽹站,如下图,选择FluorineFx/doc/ Web Site,确定后,结构如下图接着选择⽂件--→新建--→项⽬,在模板种选择FluorineFx ServiceLibrary,如下图点击确定,画⾯如下然后在表⽰层添加对ServiceLibrary的引⽤接下来在ServiceLibrary下添加Book类,BookService类,BookFluorine类,数据库结构如图Book实体类如下图接着在BookService类⾥写增删改查⽅法,代码如下using System;using c;using ;using ;using ent;using uration;namespace ServiceLibrary{public class BookService{private static SqlConnection connection;public static SqlConnection Connection{get{string connectionString = "Data Source=localhost;Initial Catalog=Book;User ID=sa;password=sqlserver";if (connection == null){connection = new SqlConnection(connectionString);();}else if ( == ){();}else if ( == ){();();}return connection;}}public static List SelectAllBooks(){string sql = "select * from Book";List list = new List();try{DataTable table = GetDataTable(sql);foreach (DataRow row in ){Book book = new Book(); = (int)row["id"];/doc/ = (string)row["name"]; = (string)row["author"]; = (decimal)row["price"];(book);}return list;}catch (Exception e){return null;}}public static int AddBook(string name, string author, decimal price){string sql = "insert Book(name,author,price) values(@name,@author,@price)";try{SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@name",name),new SqlParameter("@author",author),new SqlParameter("@price",price)};return GetScalar(sql, paras);}catch (Exception e){return 0;}}public static void DeleteBookById(int id){string sql = "delete Book where id=@id";try{ExecuteCommand(sql, new SqlParameter("@id", id));}catch (Exception e){return;}}public static void UpdateBook(int id,string name, string author, decimal price){string sql = "update Book set name=@name,author=@author,price=@price where id=@id";try{SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@name",name),new SqlParameter("@author",author),new SqlParameter("@price",price),new SqlParameter("@id",id)};ExecuteCommand(sql, paras);}catch (Exception e){return;}}public static DataTable GetDataTable(string safeSql){DataSet ds = new DataSet();SqlCommand cmd = new SqlCommand(safeSql, Connection);SqlDataAdapter da = new SqlDataAdapter(cmd);(ds);return [0];}public static int GetScalar(string sql, SqlParameter[] values){SqlCommand cmd = new SqlCommand(sql, Connection);ge(values);return (int)eScalar();}public static int ExecuteCommand(string sql, SqlParameter value){SqlCommand cmd = new SqlCommand(sql, Connection);(value);return eNonQuery();}public static int ExecuteCommand(string sql,params SqlParameter[] values) {SqlCommand cmd = new SqlCommand(sql, Connection);ge(values);return eNonQuery();}}}BookFluorine类代码如下图:最后存盘,重新⽣产解决⽅案,⾄此,服务器端开发完毕。接下来进⾏测试,右键点击,如图,选择在浏览器中查看打开BookWeb下的⼦⽬录,如下图然后选择SelectAllBooks来验证⼀下我们写的⽅法是否可以通过点击Call,会得到如下结果⾄此,服务器端开发完毕,接下来⽤Flex开发客户端⾸先打开端⼝服务,查看相关信息,如下图记住这些信息,等下配置Flex要⽤。运⾏Flex Builder 3 ,新建Flex项⽬,按如下配置点击Next,按端⼝服务信息进⾏配置,如下图,点击Finish,然后在项⽬上右键选择properties,打开属性窗⼝左边选择Flex Compiler,右边的Additional compiler arguments:配置你的⽂件的路径,如下图点Apply,然后在左边选择Flex Server,配置如下点Apply,然后左边选择Flex Build Path,配置如下图⾄此,Flex端配置完成,下⾯我们通过FluorineFx库模板为我们⽣成的Sample为例来测试下该环境是否可以通过,在Flex的mxml⽂件下通过标签来访问远程对象,详细如下图:这⾥destination需要设置为与中的destination的id⼀致,source则配置为远程对象的全路径(命名空间+类),通过标签配置远程对象下的⽅法并设置其成功调⽤后的结果处理函数。完整代码如下:layout="absolute" creationComplete="init()" fontSize="13">import gUtils;import ollection;import vent;import Event;import ;[Bindable]private var books:ArrayCollection;internal function init():void{AllBooks();}private function onFaultHandler(evt:FaultEvent):void{("Fault", ng());}private function onSelectAllBooksHandler(evt:ResultEvent):void{books = as ArrayCollection;}private function onAddBookHandler(evt:ResultEvent):void{;}private function onDeleteBookByIdHandler(evt:ResultEvent):void{;}private function onUpdateBookHandler(evt:ResultEvent):void{;}public function addBook():void{k(,,);init();}private function updateBook():void{Book(,,,);init();}private function delBook():void{BookById(Number());init();}]]>
2023年6月21日发(作者:)
Flex集成.Net操作数据库(1简单数据)Flex集成/doc/ 实现对数据库的操作⾸先安装FluorineFx,开源项⽬FluorineFx就是专门针对.NET平台与Flex通信提供的AMF协议通信⽹关,我们可以通过FluorineFx很⽅便的完成与.NET的通信。FluorineFx官⽅提供了安装包的下载和在线⽂档,可以帮助我们有效的利⽤FluorineFx来开发。FluroineFx官⽅⽹站:/doc/ /FluroineFx下载地址:/doc/ /uroineFx在线⽂档:/doc/ /docs/fluorine/运⾏Microsoft Visual Studio 2005(2008也可),选择⽂件---->新建---->⽹站,如下图,选择FluorineFx/doc/ Web Site,确定后,结构如下图接着选择⽂件--→新建--→项⽬,在模板种选择FluorineFx ServiceLibrary,如下图点击确定,画⾯如下然后在表⽰层添加对ServiceLibrary的引⽤接下来在ServiceLibrary下添加Book类,BookService类,BookFluorine类,数据库结构如图Book实体类如下图接着在BookService类⾥写增删改查⽅法,代码如下using System;using c;using ;using ;using ent;using uration;namespace ServiceLibrary{public class BookService{private static SqlConnection connection;public static SqlConnection Connection{get{string connectionString = "Data Source=localhost;Initial Catalog=Book;User ID=sa;password=sqlserver";if (connection == null){connection = new SqlConnection(connectionString);();}else if ( == ){();}else if ( == ){();();}return connection;}}public static List SelectAllBooks(){string sql = "select * from Book";List list = new List();try{DataTable table = GetDataTable(sql);foreach (DataRow row in ){Book book = new Book(); = (int)row["id"];/doc/ = (string)row["name"]; = (string)row["author"]; = (decimal)row["price"];(book);}return list;}catch (Exception e){return null;}}public static int AddBook(string name, string author, decimal price){string sql = "insert Book(name,author,price) values(@name,@author,@price)";try{SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@name",name),new SqlParameter("@author",author),new SqlParameter("@price",price)};return GetScalar(sql, paras);}catch (Exception e){return 0;}}public static void DeleteBookById(int id){string sql = "delete Book where id=@id";try{ExecuteCommand(sql, new SqlParameter("@id", id));}catch (Exception e){return;}}public static void UpdateBook(int id,string name, string author, decimal price){string sql = "update Book set name=@name,author=@author,price=@price where id=@id";try{SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@name",name),new SqlParameter("@author",author),new SqlParameter("@price",price),new SqlParameter("@id",id)};ExecuteCommand(sql, paras);}catch (Exception e){return;}}public static DataTable GetDataTable(string safeSql){DataSet ds = new DataSet();SqlCommand cmd = new SqlCommand(safeSql, Connection);SqlDataAdapter da = new SqlDataAdapter(cmd);(ds);return [0];}public static int GetScalar(string sql, SqlParameter[] values){SqlCommand cmd = new SqlCommand(sql, Connection);ge(values);return (int)eScalar();}public static int ExecuteCommand(string sql, SqlParameter value){SqlCommand cmd = new SqlCommand(sql, Connection);(value);return eNonQuery();}public static int ExecuteCommand(string sql,params SqlParameter[] values) {SqlCommand cmd = new SqlCommand(sql, Connection);ge(values);return eNonQuery();}}}BookFluorine类代码如下图:最后存盘,重新⽣产解决⽅案,⾄此,服务器端开发完毕。接下来进⾏测试,右键点击,如图,选择在浏览器中查看打开BookWeb下的⼦⽬录,如下图然后选择SelectAllBooks来验证⼀下我们写的⽅法是否可以通过点击Call,会得到如下结果⾄此,服务器端开发完毕,接下来⽤Flex开发客户端⾸先打开端⼝服务,查看相关信息,如下图记住这些信息,等下配置Flex要⽤。运⾏Flex Builder 3 ,新建Flex项⽬,按如下配置点击Next,按端⼝服务信息进⾏配置,如下图,点击Finish,然后在项⽬上右键选择properties,打开属性窗⼝左边选择Flex Compiler,右边的Additional compiler arguments:配置你的⽂件的路径,如下图点Apply,然后在左边选择Flex Server,配置如下点Apply,然后左边选择Flex Build Path,配置如下图⾄此,Flex端配置完成,下⾯我们通过FluorineFx库模板为我们⽣成的Sample为例来测试下该环境是否可以通过,在Flex的mxml⽂件下通过标签来访问远程对象,详细如下图:这⾥destination需要设置为与中的destination的id⼀致,source则配置为远程对象的全路径(命名空间+类),通过标签配置远程对象下的⽅法并设置其成功调⽤后的结果处理函数。完整代码如下:layout="absolute" creationComplete="init()" fontSize="13">import gUtils;import ollection;import vent;import Event;import ;[Bindable]private var books:ArrayCollection;internal function init():void{AllBooks();}private function onFaultHandler(evt:FaultEvent):void{("Fault", ng());}private function onSelectAllBooksHandler(evt:ResultEvent):void{books = as ArrayCollection;}private function onAddBookHandler(evt:ResultEvent):void{;}private function onDeleteBookByIdHandler(evt:ResultEvent):void{;}private function onUpdateBookHandler(evt:ResultEvent):void{;}public function addBook():void{k(,,);init();}private function updateBook():void{Book(,,,);init();}private function delBook():void{BookById(Number());init();}]]>
发布评论