精华内容
下载资源
问答
  • Tips:欢迎公众号设置为星标,VB技术干货文章可以第一时间看到。如您在学习VB过程中独特的见解或者想法...函数和过程的参数传递方式在调用过程时,过程中使用的是实际参数,它要与定义过程时的形式参数一一对应,...

    Tips:欢迎公众号设置为星标,VB技术干货文章可以第一时间看到。如您在学习VB过程中有独特的见解或者想法,欢迎投稿,可在公众号文章下直接留言.

    1. VB编程语言基础知识点总结

    2. VB编程基本数据类型完整剖析

    3. VB编程设计--文件同步程序的开发

    4. VB与数据库开发三步走攻略!

    函数和过程的参数传递方式

    在调用过程时,过程中使用的是实际参数,它要与定义过程时的形式参数一一对应,并以适当的形式将实参传给形参,这便是参数传递,也是虚(形参)实(实参)结合。

    VB编程中参数传递方式有两种:传值和传址。


     传值


    传值:将实参的值传给形参后,实参与形参间便无任何联系,即形参的变化不会对实参产生任何影响。传值时,在形参前用 ByVal来界定。

    例: 传值调用。

    Private Sub Command1_Click()

        Dim x as Integer,y as Integer

        x=10

        y=20

        Print ″x=″;x,″y=″;y; 

        Call temp(x,y)

        Print ″x=″;x,″y=″;y;

    End Sub

    Sub temp (ByVal x As Integer,ByVal y As Integer)

        x=x+100

        y=x*60

        Print ″x=″;x,″y=″;y;

    End Sub

    09f4d391dec1c413d013528040a60173.png


     传址


    传址(默认方式,也叫引用):形参与对应实参用相同的内存地址,形参的改变将影响实参,形参实际上是实参的别名。

    例 : 按址传递

    Private Sub Command1_Click() ‘按址传递

        x = 10

        y = 20

        Cls

        Print "x="; x, "y="; y, "调用前实参"

        Call temp1(x, y)

        Print "x="; x, "y="; y, "调用后实参"

    End Sub

    Sub temp1(x,  y) ‘按址传递

        x = x + 100

        y = x * 60

        Print "x="; x, "y="; y, "调用过程中的参数"

    End Sub

    4bda2b12c3a40e3d6cca6ff328022fb1.png

    综上,我们可以发现,同样的代码,使用不同的参数传递方式,其运行结果也不相同,大家在学习的过程中一定要深刻理解。

    51f79237fd93799aa30b7c2caf436534.png

    大家在VB学习中有任何问题

    可以添加下图老师微信号

    e2138166820e6803c1ed94bc9a967016.png

    展开全文
  • 但在数据量特别大的情况下,这两种方式明显就不合适宜,这意味着我们要写很多的URL参数或者是Seesion变量来保存数据。但在学习《Professional ASP.NET 3.5 SP1 Edition in C# and VB》的过程中我发现还有一些我不...

    通常情况下,我们为了从一个页面传递某些数据到另外一个页面,总是喜欢用 URL参数或者Seesion来实现。但在数据量特别大的情况下,这两种方式明显就不合适宜,这意味着我们要写很多的URL参数或者是Seesion变量来保存数据。但在学习《Professional ASP.NET 3.5 SP1 Edition in C# and VB》的过程中我发现还有一些我不知道的其它方法可以实现。我觉的有必要与大家一起分享,与是决定写下这篇笔记。

     

    asp时代,我们经常使用跨页面传递的方式传输数据,但当我们进入到ASP.NET时代后却发现这种方式基本无法继续延续了。这不禁让我们在某些时候怀念ASP的灵活性了,不过好在ASP.NET 3.5时候,又为我们开启了这样的功能。具体是如何实现的呢?先让我们来看一个例子。

     

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Page1.aspx.cs" Inherits="WebApplicationASP.NET3._5Test.Page2" %>
    
     
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
     
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head runat="server">
    
        <title>First page</title>
    
    </head>
    
    <body>
    
        <form id="form1" runat="server">
    
        <div>
    
        you name:<asp:TextBox ID="TextBox_Name" runat="server"></asp:TextBox><br />
    
        when do you want to fly? <br />
    
            <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar><br />
    
    <br />
    
    <asp:Button runat="server" ID="Button1" Text="submit page to itself" onclick="Button1_Click" />
    
        &nbsp;
    
            <asp:Button ID="Button2"  runat="server" Text="submit page to page2.aspx" PostBackUrl="~/Page2.aspx" />
    
            <br />
    
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    
            <br />
    
        </div>
    
        </form>
    
    </body>
    
    </html>

     

     

     

    在这个例子中有一个文本输入框,一个日历控件,还有一个标签控件和两处按钮。不过这都不是重点。重点是两个按钮,Button1有一个onclick事件,执行后会回传到本页面。并把用户输入的名字和选择的日期显示到LABLE1上去。具体方法如下:

    protected void Button1_Click(object sender, EventArgs e)
    
            {
    
                Label1.Text = TextBox_Name.Text + Calendar1.SelectedDate.ToString();
    
            }

     

    但另一个Button2就不一样了,它指定了一个PostBackURL,这意味着它会把数据回传到别外一个页面Page2.aspx。那Page2.aspx又是什么样子的呢?代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Page2.aspx.cs" Inherits="WebApplicationASP.NET3._5Test._Default" %>
    
     
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
     
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head runat="server">
    
        <title></title>
    
    </head>
    
    <body>
    
        <form id="form1" runat="server">
    
        <div>
    
        
    
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    
        </div>
    
        </form>
    
    </body>
    
    </html>

     

    页面文件很简单,再来看看后台代码:

     

    protected void Page_Load(object sender, EventArgs e)
    
            {   
    
                TextBox p_TextBoxName;
    
                Calendar p_Calendar;
    
     
    
                p_TextBoxName = (TextBox)PreviousPage.FindControl("TextBox_Name");
    
                p_Calendar = (Calendar)PreviousPage.FindControl("Calendar1");
    
     
    
                Label1.Text = p_TextBoxName.Text + p_Calendar.SelectedDate.ToString();
    
            }

     

    这里有稀奇了。PreviousPage,这就是我们今天的重点。Page 类下含有PreviousPage属性,它的作用是获取向当前页传输控件的页。也就是说,如果页面1向页面2传输了控件,那就可以在页面2中通过这个属性取得页面1上的所有控件。而这一切就要依赖于我们的FindControl()这个方法,FindControl()方法接受一个字符串参数,这个参数就是页面1的控件ID。看到这里,我相信大家应该已经知道怎么使用了吧。

     

    不过除了上面这种方法,还有另一种也可以实现那就是为页面设置属性。具体来看代码:

    public partial class Page1 : System.Web.UI.Page
    
        {
    
            public TextBox p_TextBoxName
    
            {
    
                get { return TextBox_Name; }
    
            }
    
            public Calendar p_Calendar
    
            {
    
                get { return Calendar1; }
    
            }
    
     }

     

     

    Page1.aspx.cs中,增加了两个页面属性。再来看看Page2.apsx,在页面顶部我们加了一个PreviousPageType 指令。指定传递过来的页面为Page1.aspx

    <%@ PreviousPageType VirtualPath="~/Page1.aspx" %>

     

    然后在后台代码中我们就可以使用智能感知写下如下代码

     Label1.Text = PreviousPage.p_TextBoxName.Text + PreviousPage.p_Calendar.SelectedDate.ToString();

     

    在这句话中大家可以发现p_TextBoxName以经做为一个属性在使用,而并没有进行其它的转换,这样是不是更方便了呢?

     

    以上就是在ASP.NET 3.5中页面传值的新方法。不过我还要额外的说一点,那就是。我们Page2.aspx除了由page1.aspx传值以外,也有可能会自己给自己传递值呀,如果这个时候去执行

    Label1.Text = PreviousPage.p_TextBoxName.Text + PreviousPage.p_Calendar.SelectedDate.ToString();

    这样的语句那一定是会报错的,怎么办呢?其实我们可以这样做:

    if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
    
                {
    
                    Label1.Text = PreviousPage.p_TextBoxName.Text + PreviousPage.p_Calendar.SelectedDate.ToString();
    
                }

     

    这里的IsCrossPagePostBack方法,就是专门用来检测,当前的回传方式是不是跨页面回传的。这样我们就不怕在跨页面回传与当前页面回传之间引起错误了。

    转载于:https://www.cnblogs.com/wugang/archive/2012/10/25/2738318.html

    展开全文
  • VB中ByVal与ByRef什么区别 ByVal 与 ByRef(默认值)这两个是子过程的参数传递时,指定参数按什么传递的ByVal...这样过程才能拿这些数据参与计算并实现一些功能那么在传递的过程中,就存在这两种传递方式传值时(By...

    VB中ByVal与ByRef有什么区别

    ByVal 与 ByRef(默认值)
    这两个是子过程的参数传递时,指定参数按什么传递的
    ByVal(按值传递)
    ByRef(按地址传递)
    具体这样来理解:
    过程中的参数列表,我们称形参
    调用过程时的参数列表,我们称实参

    在调用时,我们要将实参的值传递给形参,这样过程才能拿这些数据参与计算并实现一些功能
    那么在传递的过程中,就存在这两种传递方式
    传值时(ByVal),是先给形参开辟一个临时地址,将实参的内容传入这个临时地址,这样,传递后,形参与实参是在两上不同的地址中,也就是说他们是相互独立的
    传址时(ByRef),是直接将实参的地址传递给形参,这样,形参与实参就共用一个地址,所以,形参内容的改变,也直接改变了实参的内容

    通过上面的分析,你只要记得:
    按值传递时(ByVal),形参的改变不会影响到实参
    按址传递时(ByRef),形参的改变,会影响到实参

    应用时,我们可以利用按址传递的过程,给一个子过程(Sub过程)进行参数返回

    例:
    Dim A as integer,B as integer
    A=1
    B=2
    Call AAA(A,B)
    Print A,B   '得到的结果是2    3 (形参的改变影响到了实参)
    Call BBB(A,B)
    Pring A,B   '得到的结果跟上面的一样,2    3(形参的改变并没有影响到这个实参)


    Sub AAA(I as integer,J as integer) '默认,则按址传递
    i=i+1
    J=J+1
    End Sub

    Sub BBB(ByVal I as integer,ByVal J as integer) 
    i=i+1
    J=J+1
    End Sub

    转载于:https://www.cnblogs.com/rosesmall/archive/2012/11/07/2758989.html

    展开全文
  • 在 Visual Basic 6.0 中, Any类型的变量通常用于传递是字符串或 Null 的变量, 您可以通过声明两种(一种使用长型,一种使用字符串)来替换这种 Visual Basic 6.0 的用法。 易语言的函数、类型、常数声明是放在不同的...
  • 电子邮件发送程序的发送方式有两种:第一种是本地计算机与用户所指定的发送邮件服务器连接,然后通过发送邮件服务器将邮件传递到接收邮件服务器,邮件中包含有信件的主题和内容等一系列信息;第二种是本地计算机直接...
  • vb.net和c#.net一系列微妙的差异,变量的申明和赋值,数据类型,语句终止的方式,语句块的表述,使用的变量括号,操作符的不同,条件语句的不同,错误处理,溢出检测,变量传递,数据绑定,托管代码的操作方法和...
  • 水晶报表数据传递模型 ... 有两种方式来使用报表:使用已有报表或者创建新的报表。VB.NET提供很多报表模板,可以在程序中直接使用;但大多数情况下,需要重新创建报表,可以使用报表向导创建。 ...

    水晶报表数据传递模型

        有两种方式来使用报表:使用已有报表或者创建新的报表。VB.NET提供很多报表模板,可以在程序中直接使用;但大多数情况下,需要重新创建报表,可以使用报表向导创建。
     

    展开全文
  • 传值和传址

    2020-03-27 16:07:33
    vb中调用函数或过程时,传递参数有两种方式:传址和传值。其中VB默认为传址方式,关键字ByRef一般可以省略。 ByRef a As Integer:表示参数a以传址方式传递给函数或过程 Byval a As Integer:表示参数a以传值方式...
  • 创建具有此类 URL 的网站有两点不足:首先,从最终用户的角度考虑,URL http://yousite.com/displayCategory.aspx?CategoryID=5 比较杂乱。可用性专家 Jakob Neilsen 建议遵循以下标准来选择 URL: • 简短。 • ...
  • 可供多种可调用动态链接库的编程语言调用(vc、vb、delphi、 java、c#、vb.net、asp、模拟精 灵等),调用简单、灵活,可以通过传递文件名或图片数据两种方式进行识别,提供函数调用说明及各种语言的调用具体实例。...
  • 28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答:Select ID FROM table1 Where ...
  • 所以我们有两种方法:如果是读取一条记录的数据或者不多的数据,我们用DATAREADER采集数据,然后赋值给LABEL控件的Text属性即可;如果是读取大量数据我们就采用DATAGRID。 今天我们就来说一下DATAREADER: string ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • C#微软培训资料

    2014-01-22 14:10:17
    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • ASP.NET精品课程+源代码

    千次下载 热门讨论 2009-01-05 20:15:51
    在案例讲解中,可只讲解一方法,也就是以程序的手段来实现对文本及数据的读写操作以及ASP.NET对文件的操作,另外的方法可以让学生自主学习。 当整个案例的基本功能实现差不多了,就可以对案例进行扩充和扩展,例如...
  • CruiseYoung提供的带详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2005入门经典》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2005入门经典 ...
  • 在一小时内学会 C#(txt版本)

    热门讨论 2009-08-19 18:09:37
    有两种数据类型: 1. 基本/内建类型 2. 用户定义类型 以下是 C# 内建类型的列表: 类型 字节 描述 byte 1 unsigned byte sbyte 1 signed byte short 2 signed short ushort 2 unsigned short int 4 signed ...
  • 开机画面现在有两种,一种为AMI公司开发的,一种为Phoenix-award两家公司合并共同开发的;下面这张图为Phoenix-award开机自画面: Phoenix-award workstation BIOS V6.00PC,An Energy star Ally copyright(c) 1984...
  • c#学习笔记.txt

    2008-12-15 14:01:21
    可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为中文是世界上最美丽的语言,可是华人世界以外谁在讲汉语? 另外我发现论坛...
  • 自动打印机

    2012-01-03 14:03:02
    机械产品的设计是对产品的功能、工作原理、系统运动方案、机构的运动与动力设计、机构的结构尺寸、力和能量的传递方式、各个零件的材料和形状尺寸、润滑方法等进行构思分析与计算,并将其转化为具体的描述以作为制造...
  •  支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。  使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib...
  • rar压缩软件.rar

    2016-02-13 10:52:44
    包含个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~...
  • 使用play方式来完成的动作如下:在vb中用agent.play "xxx"的方式,js中用agent.play("xxx");的方式 Acknowledge //点头表示答谢(可用) Alert //警惕(可用) Announce //宣布(可用) Blink //眨眼睛,一般...
  • 文章将会演示两种显示和隐藏GridView列的方法,一种是客户端的方法,另外一种是服务段的方法. 在客户段显示和隐藏GridView的列 大部分代码是在GridView的RowCreated事件生成客户端的功能的。当GridView的Header行...
  • 包含个掩码,并且所有文件及匹配第一个掩码,也匹配第二个掩码, 第一个掩码 将拥有更高的优先权,即使它被放到第二个后面。例如,存在*.cpp 和 f*.cpp 掩码 的情况下,f*.cpp 拥有更高的优先权。 RAR ...
  • ASP.NET的网页代码模型及生命周期

    热门讨论 2009-07-28 14:22:11
    ASP.NET页面中包含两种代码模型,一种是单文件页模型,另一种是代码隐藏页模型。这两个模型的功能完全一样,都支持控件的拖拽,以及智能的代码生成。 4.1.2 单文件页模型 单文件页模型中的所有代码,包括控件代码、...
  • WinRAR_4.0.exe

    2011-02-04 11:34:33
    包含个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

vb数据传递方式有两种