以下面的例子为例......
Using cn As New SqlConnection(ConnectionString)
Try
Dim cmd As SqlCommand = New SqlCommand
With cmd
.Connection = cn
.Connection.Open()
.CommandText = "dbo.GetCustomerByID"
.CommandType = CommandType.StoredProcedure
.Parameters.Add("@CustomerID", SqlDbType.Int, 4)
.Parameters("@CustomerID").Value = CustomerID
End With
da = New SqlDataAdapter(cmd)
da.Fill(ds, "Customer")
Catch ex As Exception
End Try
End Using
Run Code Online (Sandbox Code Playgroud)
根据我今天的研究,听起来好像这基本上还可以,但是SqlCommand没有被处理掉.
问题 - >以下哪个例子是处理此问题的最佳方法?
示例2 - 手动处理
Using cn As New SqlConnection(ConnectionString)
Try
Dim cmd As SqlCommand = New SqlCommand
With cmd
.Connection = cn
.Connection.Open()
.CommandText = "dbo.GetCustomerByID"
.CommandType = CommandType.StoredProcedure …Run Code Online (Sandbox Code Playgroud) 题
我已经创建了服务器端属性级别验证属性.但是,我没有将它应用于单个字段,而是将其应用于List.这允许我作为一个整体验证模型.
我现在需要知道如何使用MVC 3中内置的不显眼的客户端验证将其转换为工作.
我目前的代码如下,以说明我的问题......
脚本
基本方案是按GroupNo字段分组的List中每行的所有Quantity值的总计.如果任何组的总和超过10,则应显示错误.
我在前一篇文章中得到了一个答案,使得这个工作服务器端使用针对List的验证属性...
该模型:
public class ItemDetails
{
public int SerialNo { get; set; }
public string Description { get; set; }
public int GroupNo { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
}
public class MyViewModel
{
[EnsureMaxGroupItems(10, ErrorMessage = "You cannot have more than 10 items in each group")]
public IList<ItemDetails> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和验证属性本身:
[AttributeUsage(AttributeTargets.Property)]
public class EnsureMaxGroupItemsAttribute : …Run Code Online (Sandbox Code Playgroud) validation asp.net-mvc-validation unobtrusive-validation asp.net-mvc-3
在MVC项目中,我使用HTML.Label助手,如下所示: -
@Html.Label("FirstName", "First Name", New With {.class = "FieldLabel"})
Run Code Online (Sandbox Code Playgroud)
哪个输出
<label class="FieldLabel" for="FirstName">First Name</label>
Run Code Online (Sandbox Code Playgroud)
我也有这个标签的相应输入.
这可能听起来像一个愚蠢的问题,但如果我只是将直接输出输入到我的视图而不是使用HTML帮助器,那么绝对没有任何区别吗?那么为标签使用HTML帮助器有什么优点/缺点吗?
在我的MVC应用程序中,我能够从文本文件中获取错误消息,而不是使用默认错误消息.这完全适用于Required属性(Serverside和Clientside).
我现在需要对Compare属性做同样的事情,但我无法弄清楚如何覆盖Compare属性.
作为参考,这是我使用Required属性的方式(我希望类似的代码使用Compare属性)...
Public Class RequiredFieldAttribute
Inherits ValidationAttribute
Implements IClientValidatable
Private innerAttribute As New RequiredAttribute()
Private errormessagecontrolid As String
Public Sub New(ErrorMessageControlID As String)
Me.errormessagecontrolid = ErrorMessageControlID
End Sub
Protected Overrides Function IsValid(value As Object, validationContext As ValidationContext) As ValidationResult
If Not innerAttribute.IsValid(value) Then
Return New ValidationResult(ErrorMsgs.Text(Me.errormessagecontrolid))
End If
Return ValidationResult.Success
End Function
Public Function GetClientValidationRules(metadata As ModelMetadata, context As ControllerContext) As IEnumerable(Of ModelClientValidationRule) Implements IClientValidatable.GetClientValidationRules
Dim result = New List(Of ModelClientValidationRule)
Dim rule = New …Run Code Online (Sandbox Code Playgroud)