在将记录插入表格之前,系统将首先检查该人员的名字和姓氏是否已存在。如果此人存在,将出现一个消息框,其中显示是或否按钮询问用户是否要继续插入记录。我已尝试以下代码:
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未被声明.....保护级别。”
希望有人可以提供帮助。谢谢!
答案 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并请求符合消息。如果单击“是”,则将值插入数据库。