当前位置:首页 » 存储配置 » netmvc存储过程

netmvc存储过程

发布时间: 2022-08-22 07:00:19

⑴ 我是学.NET的,开发一套B/S的进销存系统都需要掌握哪些知识点

一个软件系统的构造,首先要清楚需求,即使进销存满街泛滥的年代,一样要弄清需求。然后是技术实现,既然你学.NET,可以看看asp.net mvc2,前台页面可以ajax js库设计的很漂亮的,数据库方面,可以参考ORM框架进行,至少可以隔离sql语句的书写,而且能以面向对象的方式操作数据对象且有些ORM框架支持多数据库。当然,数据库的设计还是要掌握的,毕竟系统在运行以后,进行调优的时候,不只是调整代码实现的问题,数据库的优化也是很重要的。至于实现需求的过程中,又需要接口编程,分层架构,还需要设计模式的应用。其实软件都一样,麻雀虽小,五脏俱全,要做好软件,很多知识点都需要的,不要急,一项一项掌握吧。

⑵ .net MVC框架里面怎么创建一个在服务器端持续运行的程序

1,如果是sql server数据库,创建数据库工作任务,配置相应时间运行存储过程语句。2,采用时间控件,设置间隔运行时间启动运行程序

⑶ asp.net写三层架构的代码时,一般是先写BLL的内容还先写DAL的内容,他们分别放什么

学ASP.NET都知道它的最经典的架构是三层架构,也是目前应用得最广泛的一种架构.以前说起三层架构大家都知道MVC架构,这是html开发中用得比较多的,现在AJAX主要就是用这种架构。大家ASP.NET的三层是指数据访问层,业务逻辑层和表示层,而且都知道数据访问层是用来访问数据的,业务逻辑层是用来处理一些系统的业务逻辑的,表示层就是把内容呈现出来给用户,与用户进行交互的。划分三层的好处就是每一层都是独立的,修改其中一层一般不会影响其他层的代码,这样就大大的方便了日后的维护和升级。它最大的缺点是架构和编码都比较复杂,而且对性能的提高没有任何帮助,反而还可能会降低执行效率。
有时候真的觉得三层编起来挺麻烦的,在ASP.NET 2.0里,访问数据和显示出来只要拖两个控件就可以了(AccessDataSource/SQLDatasource和GridView),几分钟一个页面就出来了,而且还具备了修改中,删除,分页,排序等功能。而用三层架构就麻烦多了,先要写数据访问层的代码,接着写业务逻辑层的代码(要调用数据层的方法),最后才是表示层,也就是页面的设计,还有调用业务逻辑层的代码读取数据。(注意:表示层是绝对不会访问数据层的内容,只能通过业务层。业务层在这里是连接它们的桥梁。所以说业务层是最重要的一层)既然这样为什么还要用三层呢?前面提到的一层架构的一个很大的问题就是前台和后台代码没有很好的分开,不利于分工,第二,不利于日后的维护和升级。如果是个人主页或者是一些一个人完成的小系统用一层还是挺方面的。如果是一些比较大的系统,特别是企业级的应用,就非用三层甚至n层不可了。一般三层就很够了,再划分更多只会增加设计和编码的难度。
那到底怎么去分层呢?怎么样分层就符合三层架构原则呢?这是很多刚入门的人经常问的问题。我翻了很多本案例书,可惜很多都是一层或者是两层架构的,绝少三层的。后来研究了petshop4.0和下了一些国外的资料来看才开始对如何分层有点了解。我总结了一下主要有以下三种分层方式:
一:数据层不包含任何代码,只有数据库,还有相关的存储过程。
这种模式下,数据层看起来就变得很简单了。只包含你建立的数据库,和一些存储过程(注意是存储过程)。其实这些存储过程的建立也是相当复杂的(我以后会专门写一篇这方面的文章),因为它们可以完成除数据访问外的其他一些很强大的功能,如分页,实现搜索算法等。数据访问的逻辑就都放在业务层,当然业务层还包含其他一些逻辑代码。我们来看一个示例,假设数据库里有一个表BOOKS(书),建立一个存储过程GetAllBooks,用来读取书的信息,这样在业务层里编一个方法GetBookS()和一个公用数据库访问类,GetBooks()就通过数据库访问类打开连接,执行在存储过程,返回数据(返回类型可以是DataTable,DataSet,DataReader或者实体类)。业务层单独编译成一个或者几个DLL文件。接着就是表示层了,表示层通过调用GetBookS()返回数据绑定在相关的控件里。务层的方法都是在表示层调用。一般来说book.aspx和book.aspx.cs都是表示层的内容。所有前台的设计,相关控件,数据缓存都是属于表示层。
二:数据层还包含所有公共数据访问代码。
这种模式和前一种差别不大,主要是把数据访问代码六到数据层。这样可以很方面实现对多数据库的支持。业务逻辑层直接调用数据层的相关访问数据的代码,完全不必了解底层是什么数据库。其他和前一种没什么分别。
三:所有数据读取都放在数据层。
这种模式下像前面所述的GetBooks()方法都是放在数据层,在业务层再定义一个GetBookS()方法以供表示层调用。这种模式下业务层不但不必了解底层是什么数据库,而且连数据库的结构都不必了解了。这可以说是最标准的三层架构了,在Microsoft的PetShop 4.0里就是用这种模式。
以上就是我总结的一些内容,可能不是很准确,请大家多多指教。

⑷ 针对.NET软件项目实施都需要掌握哪些知识

这个。。。这个。。。面积太大了点吧。。。必须具备的是面向对象思想和开发基础语法,以及对常用的系统类库了如指掌,比如text,xml,linq,data,io,drawing,collection等,当然,不知道的可以查msdn,另外,就是数据库方面,必须会表、视图、临时表、存储过程、触发器的操作,以及MSSQL中的语法,比如if,case等。这些都是基本功了。
网站开发,javascript 、 jquery、CSS+DIV是必不可少的。如果想要紧跟时代步伐,那么HTML5就显得非常重要了。
如果是BS模式的,最起码的,你得知道webForm怎么写,然后UserControl怎么写,是使用什么架构去写,比如mvc,三层这些。另外,因为网站毕竟是要给用户最高体验的,而可能因为网络带宽影响网站的加载速度,那么,就需要知道什么时候使用input标记,什么时候使用.net控件。另外,就是需要了解webservice怎么去写,什么时候用。一般处理程序(*.ashx)怎么用,XML配置文件怎么写,怎么用,怎么与程序衔接。还有,就是文件上传,图表啥的了。图表可以使用flex开发。文件上传,就要看程序了。如果是单独的文件上传,呐直接用.net控件就行了,否则,可能需要自己写一些代码来负责文件上传。
如果是CS模式,同样,最起码需要知道怎么去做Winform,并且知道他们之间怎么调用。如果需要使用Windows API,也需要适当的了解一些。多线程,这个是必须要知道的,而且一定要在合适的时间使用,不然就事倍功半了。
针对于CS的硬件开发的话,必须知道硬件二次开发的接口,如果是COM口的数据,也一定要知道怎么操作COM口的数据。
这对于CS的网络编程,自然TCP和UDP,线程是必须掌握的。
针对于付费类的,一定要知道付费接口提供商的代码使用规则,比如淘宝的开放代码。
对于微博、APP这些,也都是有自己的开放代码的。可以到像、sina、163、qq等网站去找找。
对于数据方面,可以使用.NET的数据控件,gridview这些。尽可能的使用数据绑定,这样处理起来会比较快。
如果是手机开发啊,自然,wm、iphone、安卓这三个系统都需要了解,而且要了解怎么开发的。.NET只能开发WM和WINDOWSPHONE的。
最后,发布。发布的时候一定要注意freamwork版本。
如果是团队,那么VSS或者TFS都必须知道是什么,怎么去用。如果需要做流程的东西,那么visio也一定要知道一些。

这个够详细了吧

⑸ ASP.NET MVC3 利用存储过程实现查询功能的问题

错误的数值当然 会报异常了呀
上面的方法输入的是错误的值时,返回的ds是空值吗 ,是的
if (strParams != null)
{
for (int i = 0; i < strParams.Length; i++)
MyAd.SelectCommand.Parameters.AddWithValue(strParams[i], strValues[i]); //设置存储过程 的参数和值
}
SqlParameter rst = MyAd.SelectCommand.Parameters.Add("@result", SqlDbType.Int);
rst.Direction = ParameterDirection.Output; //存储过程的 output参数 @result

MyAd.Fill(ds, "newtable"); //把结果集放到 ds中去

⑹ ASP .NET MVC5 如何通过数据库生成model

可以使用Entity Framework的Db First模式生成model。

第一步:创建

ASP .NET MVC项目

第二步:创建实体模型

在项目上右击 添加新建项目→Ado.Net实体数据模型

如下图所示:

⑺ C#.NET MVC 多条件搜索的问题

直接写存储过程,如果不关心效率也有不用拼接字符串的方法:
假定记录都有一个公共字段,设计两个集合方法:求交和求并,对每个条件求它的集合,又因为多条件搜索都可以化成每个单条件的交集和并集操作,因此可以求出任何复杂的搜索模式

⑻ .net mvc 怎样调用 存储过程详细点最好有例子

由于问题主要是存储过程,以下例子的架构会直接点,Controller直接依赖SqlRepository,而未用到依赖注入。。
所以,架构方面千万不要参考了这个例子。。
费话不多说,先讲数据库。举例的数据库(SQLServer 2008)名为TestDB01,仅有的一张表表名为UserInfo,表有皆不可为空的三个字段,分别为UserID(int),UserName(nvarchar(50)),UserAge(smallint),其有一条记录为UserID:1,UserName:Lcng,UserAge22。
接下来是写在数据库里的存储过程,如下:
USE [TestDB01]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[myProcere]
@parameter1 int
AS
BEGIN
SET NOCOUNT ON;
SELECT * from [UserInfo] where [UserInfo].UserID = @parameter1
END
希望我复制粘贴时没有出错,当然,如果你对存储过程熟悉的话你会发现我的错误,如果有的话。。
存储过程表达的意思在此就不说了(想你应该熟悉存储过程),如果需要,请补充问题。。

接下来就是Visual Studio 2010里的工作了。
新建一个空ASP.NET MVC 2项目,我取的项目名是UsingProcereInMVC,往项目里加一个名为Repositories的文件夹,此文件夹用来存放对数据库的操作的类,一会儿会讲,先看Models文件夹。
往Models文件夹里加一个名叫Person的类,Person类如下:
public class Person
{
public string PersonName { get; set; }
public short PersonAge { get; set; }
}
现在回到Repositories文件夹,往这个文件夹里加一个名叫SqlRepository的类,SqlRepository类如下:
public class SqlRepository
{
private List<Person> personList = new List<Person>();

public List<Person> PersonList
{
get
{
return personList;
}
}

public SqlRepository(string connectionString)
{
SqlConnection sqlconn = new SqlConnection(connectionString);

SqlCommand sqlcmd = new SqlCommand("myProcere", sqlconn);
sqlcmd.CommandType = CommandType.StoredProcere;

SqlDataReader rd;

try
{
sqlconn.Open();

sqlcmd.Parameters.Add(new SqlParameter("@parameter1", SqlDbType.Int));
sqlcmd.Parameters["@parameter1"].Value = 1;

rd = sqlcmd.ExecuteReader();

while (rd.Read())
{
personList.Add(new Person { PersonAge = (short)rd[2], PersonName = rd[1].ToString() });
}
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
sqlconn.Close();
}
}
同样,希望我的复制粘贴没有出错。。
希望对于此类需要讲解的只有以下这些内容,如
SqlCommand sqlcmd = new SqlCommand("myProcere", sqlconn);
sqlcmd.CommandType = CommandType.StoredProcere;
如果你用过ASP.NET WebForm,那么对这两条中的第一条语句你应该很熟悉,相对于ASP.NET WebForm,SqlCommand sqlcmd = new SqlCommand("myProcere", sqlconn);只是把第一个参数由原来的SQL语句换成了定义在数据库里的存储过程的名字;而第二条语句只是告诉sqlcmd它的命令类型而已。
当然,我还要说的是,其实这根本就是在ASP.NET WebForm可以用的用法,只是我把它放到ASP.NET MVC里举例子了而已。。其实我们完全可以或说应当使用LINQ。。
还有两条要说的语句是
sqlcmd.Parameters.Add(new SqlParameter("@parameter1",SqlDbType.Int));
sqlcmd.Parameters["@parameter1"].Value = 1;
要说的是@parameter1就是定义存储过程里的那个参数,这里给这个参数的值为1,它完全可以根据你的需要而变。

接着看Controllers里的HomeController,它唯一的一个action就是Index(),定义如下
public ViewResult Index()
{
SqlRepository sr = new SqlRepository(WebConfigurationManager.ConnectionStrings["connectionString01"].ConnectionString);

return View(sr.PersonList);
}
如果对此有不明之处,请补充问题。。

最后是强类型(类型为List<UsingProcereInMVC.Models.Person>)的名叫Index的View,主要内容如下
<body>
<div>
<% foreach (var v in Model)
{ %>
Name:<%: v.PersonName %><br />
Age: <%: v.PersonAge %><br />
<% } %>
</div>
</body>

如果你按着这个例子做,显示的结果将会是
Name:Lc
Age: 22
祝你好运(当然,这条是不会显示的)。。

希望可以帮到你,如果还有疑问,请补充问题。
如果这对你有帮助,请标为最佳答案。

⑼ 在ASP.NET MVC中如何使用EF调用存储过程

要用EF调用存储过程,必须将这个存储过程拖拽到EF对应的文件中来,这样这个存储过程就自动变成了一个函数。例如存储p_GetProct。那么使用的时候
using(DataContext
oDataContext=new
DataContext())//EF对应的上下文对象
{
oDataContext.p_GetProct();//直接通过这样调用就行了。当然,如果存储过程有参数,也可以通过这个函数传递参数。
}
希望可以帮到你。

⑽ MVC中通过.edmx调用存储过程处理返回值

int r=0;
System.Data.Objects.ObjectParameter result = new System.Data.Objects.ObjectParameter("Result",System.Data.DbType.Int32);
movies.Movies_Create(Title, Convert.ToDateTime("ReleaseDate"), Genres_List, Price, Rating, result);
r=(int)result.Value;//r就是你所需要的返回值

热点内容
安卓上哪里下大型游戏 发布:2024-12-23 15:10:58 浏览:189
明日之后目前适用于什么配置 发布:2024-12-23 14:56:09 浏览:54
php全角半角 发布:2024-12-23 14:55:17 浏览:828
手机上传助手 发布:2024-12-23 14:55:14 浏览:732
什么样的主机配置吃鸡开全效 发布:2024-12-23 14:55:13 浏览:830
安卓我的世界114版本有什么 发布:2024-12-23 14:42:17 浏览:710
vbox源码 发布:2024-12-23 14:41:32 浏览:278
诗经是怎么存储 发布:2024-12-23 14:41:29 浏览:660
屏蔽视频广告脚本 发布:2024-12-23 14:41:24 浏览:419
php解析pdf 发布:2024-12-23 14:40:01 浏览:818