zoukankan      html  css  js  c++  java
  • .Net 的存储过程 终于搞定!

    一个客户的项目 要做一个生日报就是卖报纸,数据库设计倒是简单。。就是报名 时间(就是年月日)库存,但是数据量很多。。他是1900年到2007年。。100来年啊。。一年就365天而且他有100多种报纸。。所以数据量是相当的大。。
     
    这种客户根本就不能给用ACCESS数据库了。。速度上就根不上了。。
    只好给上SQL了。。而且要用存储过程。。以前一直没用过。。不过难度倒是不大。。
    不过点是比较被。。由于自己的电脑比较垃圾(上班用的这台,可不是我家的。。呵呵),装个sql2000竟然装了一个上午,就是认不出来。。人品吧。。哇咔咔。。
    下午结果装上了。。
    开始研究.Net的存储过程。。找北京的朋友。。咨询了一下。。结果也没有讨论出太明确的结果,他给了些代码。。结果手机显示的不是很全。。就没太看。。还是屏幕小啊。。回来换个大的去。。就又去网上找了。。最后在蓝色上找到个asp版的。。不过这就不错拉。。给出链接来(http://www.blueidea.com/tech/program/2006/3972.asp)SQL存储过程初探,
    我的要求倒也不高,能select insert update 就可以了。。也没啥太大的要求。
     
    看后终于明白了。。用了2分钟给改成 .net版的存储过程了。。哇咔咔。。
    下面给出两个重点。。一个就是存储过程的写法

    1CREATE PROCEDURE [dbo].[insertpp] AS
    2
    3begin
    4 insert into myuser ( name ) VALUES ('pengpeng')
    5end
    6GO
    这个是我在sql2000的存储过程里写的。和蓝色的那个教程有点不一样,但是能用就是硬道理!!
    带参数的。。我就直接拷贝人家教程的吧。。原理一样我就不写了。。懒下下了。。呵呵

    1CREATE PROC upGetUserName
    2@intUserId        NVARCHAR(50),
    3@intUserpass        NVARCHAR(50)    
    4AS
    5BEGIN
    6        SELECT uname FROM users WHERE uId=@intUserId and pass=@intUserpass
    7
    8END
    9GO

    其实就是多个变量。。
    下面给出.net的调用代码(说实话和asp没太大区别。。嘿嘿)

     1private void Button1_Click(object sender, System.EventArgs e)
     2  {
     3   try
     4   {
     5    common.db db = new common.db();
     6    db.ExeSql("exec insertpp");
     7    common.FunLib.Msg("插入成功!",this.Page);
     8   }
     9   catch
    10   {
    11    common.FunLib.Msg("插入错误!",this.Page);
    12   }
    13  }

    当然了。。数据库那里还有配置了。。

     1<!--
     2 数据库字段设置 彭彭编写
     3 -->
     4 
     5  <appSettings>
     6 <add key="connSelect" value="sqlCon"></add>
     7 <add key="accessConn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data source=D:\webpp\2007年8月份网站\pp.mdb" ></add>
     8 <add key="sqlCon" value="Data Source=AS\PPP;Database=test;Uid=sa;Pwd="></add>
     9 <add key="flashxml" value="D:\webpp\2007年8月份网站\viewerData.xml"></add>
    10 </appSettings>
    11
    12</configuration>
    13

    当然这个是彭彭自己的.Net数据库类。。大家每个人用的都不一样。。我也就不说啥了。。会的看看就会了。。很简单的。。要是不会。。我也只能就说到这里了。。大家多交流吧。。快下班拉。。晚上去吃大餐啦。。高兴中。。
    -----------------------------
    补个最终版的sql语句
    insert into AName ( BId,ADateTime,ANum ) VALUES (@intBId,@StartDate,@intNum)
    -----------------------------
    再次修改为:重复的数量加一,不重复的插入数据。
     1CREATE PROCEDURE [dbo].[insertRs]
     2@intBId        int,
     3@StartDate    smalldatetime,
     4@EndDate       smalldatetime ,
     5@intNum    int
     6 AS
     7begin
     8
     9while @StartDate <= @EndDate
    10begin 
    11print @StartDate
    12if exists (select * from AName where ADateTime = @StartDate)
    13BEGIN
    14/*
    15insert into AName ( BId,ADateTime,ANum ) VALUES (@intBId,@StartDate,@intNum)
    16*/

    17update AName set ANum = ANum + @intNum where ADateTime = @StartDate
    18END
    19else
    20BEGIN
    21insert into AName ( BId,ADateTime,ANum ) VALUES (@intBId,@StartDate,@intNum)
    22END
    23
    24
    25
    26
    27--注意改变循环变量,以保证不会构成死循环 
    28-- 字符串类型 NVARCHAR(50)
    29set @StartDate = @StartDate + 1
    30
    31end 
    32
    33    
    34end
    35GO
    36

    ---------------------------------------------
    生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
    ↑面的话,越看越不痛快,应该这么说:

    生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
  • 相关阅读:
    12 购物车之一(用列表)
    centos7安装pycharm,并创建桌面快捷方式
    centos7安装xrdp
    centos7 安装gitlab
    mysql 新建用户和授权
    django项目连接mysql没有Mysqldb解决办法_使用pymysql代替
    selenium+python实现查询和下载文件
    Python3-使用Requests和正则表达式爬取猫眼Top100的数据
    python3-字典常用操作
    python3-列表常用操作
  • 原文地址:https://www.cnblogs.com/pengchenggang/p/943026.html
Copyright © 2011-2022 走看看