如何使用vb.net在asp net webforms中显示是或否的消息框?

时间:2017-03-16 03:28:35

标签: asp.net sql-server vb.net

在将记录插入表格之前,系统将首先检查该人员的名字和姓氏是否已存在。如果此人存在,将出现一个消息框,其中显示是或否按钮询问用户是否要继续插入记录。我已尝试以下代码:

Imports ChurchMIS.Data
Imports System
Imports System.Collections.Generic
Imports System.Data
Imports System.Linq
Imports System.Text.RegularExpressions
Imports System.Web
Imports System.Web.Security
Imports System.Data.SqlClient
Namespace ChurchMIS.Rules

Partial Public Class IndividualBusinessRules
    Inherits ChurchMIS.Data.BusinessRules

    ''' <summary>
    ''' This method will execute in any view for an action
    ''' with a command name that matches "SQL".
    ''' </summary>
    <Rule("r107")>  _
    Public Sub r107Implementation( _
                ByVal individualId As Nullable(Of Integer),  _
                ByVal firstName As String,  _
                ByVal lastName As String,  _
                ByVal dateOfBirth As Nullable(Of DateTime),  _
                ByVal addressTypeId As Nullable(Of Integer),  _
                ByVal suburb As String,  _
                ByVal streetAddress As String,  _
                ByVal postCode As Nullable(Of Integer),  _
                ByVal contactInfoTypeId As Nullable(Of Integer),  _
                ByVal contactNo As String,  _
                ByVal fullName As String,  _
                ByVal individualTypeId As Nullable(Of Integer),  _
                ByVal state As String,  _
                ByVal dateOfBaptism As Nullable(Of DateTime),  _
                ByVal dateOfTransfer As Nullable(Of DateTime),  _
                ByVal email As String,  _
                ByVal faithStatus As Nullable(Of Integer),  _
                ByVal noOfVisits As Nullable(Of Integer),  _
                ByVal name As String,  _
                ByVal name_1 As String,  _
                ByVal name_2 As String)
        'This is the placeholder for method implementation.
        Dim con As SqlConnection = New SqlConnection("Data     Source=CNEPHILS;Initial Catalog=ChurchMIS;User ID=sa;Password=Cn$phil$")

        Dim theQuery As String = "SELECT * FROM Individual WHERE  FirstName=@FirstName AND LastName=@LastName"
        Dim cmd1 As SqlCommand = New SqlCommand(theQuery, con)
        cmd1.Parameters.AddWithValue("@FirstName", firstName)
        cmd1.Parameters.AddWithValue("@LastName", lastName)

        Using reader As SqlDataReader = cmd1.ExecuteReader()
            If reader.HasRows Then
                ' person already exists
                    Dim result As Integer=

                Dim result As Integer = MessageBox.Show("message",  "caption", MessageBoxButtons.YesNoCancel)
                If result = DialogResult.Cancel Then
                    MessageBox.Show("Cancel pressed")
                ElseIf result = DialogResult.No Then
                    MessageBox.Show("No pressed")
                ElseIf result = DialogResult.Yes Then
                    Dim cmd As SqlCommand = New SqlCommand("exec  spInsertIndividual @FirstName,@LastName,@DateOfBirth,@Suburb,@StreetAddress,@PostCode,@State,@AddressTypeId,@ContactInfoTypeId,@ContactNo,@IndividualTypeId,@Email,@FaithStatus,@DateOfBaptism,@DateOfTransfer", con)
                    cmd.ExecuteNonQuery()
                    MsgBox("Records Successfully Added!", MsgBoxStyle.Information)
                End If
            Else
                ' person does not exist, add them
                Dim cmd As SqlCommand = New SqlCommand("exec spInsertIndividual @FirstName,@LastName,@DateOfBirth,@Suburb,@StreetAddress,@PostCode,@State,@AddressTypeId,@ContactInfoTypeId,@ContactNo,@IndividualTypeId,@Email,@FaithStatus,@DateOfBaptism,@DateOfTransfer", con)
                cmd.ExecuteNonQuery()
                MsgBox("Records Successfully Added!", MsgBoxStyle.Information)
            End If
        End Using

        con.Close()

    End Sub
End Class
End Namespace

然而,我提出了一个错误“MessageBox未被声明.....保护级别。”

希望有人可以提供帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

@roger。我认为您正在使用Web应用程序。试试这个,在head标签内的.aspx页面中添加这个脚本。

<script type="text/javascript">
        function SomeMethod() {
            try {
                var result = true;
                var obj = {};
                obj.Firstname = $('#<%=txtfirstname.ClientID %>').val();
                obj.Lastname = $('#<%=txtlastname.ClientID %>').val();
                $.ajax({
                    type: "POST",
                    data: JSON.stringify(obj),
                    url: "yourformname.aspx/yourmethodname",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async:false,
                    success: function (response) {
                        if (response.d.toString() == "true") {
                                if (confirm("first name and last name of the person is already exists?")) {
                                    result = true;
                                    // insert the user name
                                }
                                else {
                                    result = false;

                                }
                        }
                        else {

                        }
                    },
                    failure: function (response) {
                        alert(response.d);
                    }
                });
            }
            catch (e) {
                alert(e);
            }
            return result;
        }
    </script>

在按钮点击事件中调用javascript函数。如果您使用RequiredFieldValidator进行验证,请使用Page_ClientValidate(),在按钮onclick事件中删除该Page_ClientValidate()函数。

<asp:Button ID="btnbutton" CssClass="Designclass" OnClientClick="if(Page_ClientValidate()) return SomeMethod();"
                                        runat="server" Text="Generate" />

在.aspx.vb页面中创建以下Web方法

 <System.Web.Services.WebMethod()>
Public Shared Function Checkuserexists(ByVal Firstname As String, ByVal Lastname As String) As String
    'write your code for checking firstname and last name
     If exists > 0 Then
        Return true
    Else
        Return False
    End If
End Function

通过使用Checkuserexists方法检查数据库中是否存在名字和姓氏。如果存在名字和姓氏,则返回true并请求符合消息。如果单击“是”,则将值插入数据库。