我通过System.Data.Sqlite用Sqlite检查Dapper的v1.25.如果我运行此查询:
var rowCount = dbc.Query<int>("SELECT COUNT(*) AS RowCount FROM Data").Single();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误: System.InvalidCastException: Specified cast is not valid
这是因为Sqlite将上述值作为Int64返回,我可以使用以下代码进行验证.这将抛出"Int64":
var row = dbc.Query("SELECT COUNT(*) AS RowCount FROM Data").Single();
Type t = row.RowCount.GetType();
throw new System.Exception(t.FullName);
Run Code Online (Sandbox Code Playgroud)
现在,以下代码实际上将处理从Int64到Int32的向下转换:
public class QuerySummary
{
public int RecordCount { get; set; }
}
var qs = dbc.Query<QuerySummary>("SELECT COUNT(*) AS RecordCount FROM Data").Single();
rowCount = qs.RecordCount;
throw new System.Exception(rowCount.ToString());
Run Code Online (Sandbox Code Playgroud)
当我抛出此异常时,它会给我实际的行数,表明Dapper为我处理了转换.
我的问题是,为什么dbc.Query<int>不以类似的方式处理向下转换dbc.Query<QuerySummary>?这是预期的行为吗?
我有一个gridview如下:
<asp:GridView ID="gv" runat="server" SelectMethod="gv_GetData" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="true">
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
我在c#中有以下代码可行:
public IList<string> gv_GetData(int maximumRows, int startRowIndex, out int totalRowCount, string sortByExpression)
{
List<string> l = GetTestData();
totalRowCount = l.Count;
return l;
}
private List<string> GetTestData()
{
List<string> l = new List<string>();
l.Add("a");
l.Add("b");
l.Add("c");
return l;
}
Run Code Online (Sandbox Code Playgroud)
现在,在VB中我有:
Public Function gv_GetData(maximumRows As Integer, startRowIndex As Integer, ByRef totalRowCount As Integer, sortByExpression As String) As IList(Of String)
Dim l As List(Of String) = GetTestData()
totalRowCount = l.Count
Return l
End Function …Run Code Online (Sandbox Code Playgroud) 我一直在查看4.5中Web Forms的一些新功能,而且我遇到了一个不显眼的验证路障.
Web Forms 4.5中的不显眼验证依赖于jQuery,当它启用时,将在页面主体中的服务器表单内部生成jQuery脚本引用.这听起来很棒,我喜欢这个概念.它在我看过的演示中效果很好,代码中的减少/清理是一件很美妙的事情.
但是,当我在预先存在的项目中启用它时,我遇到了问题.问题是我有无数的页面和应用程序利用jQuery进行客户端交互(jQuery UI是一个典型的例子),在这些页面中我有一个jQuery引用和附带的代码在页面的标题部分.当启用不显眼的验证时,结果是页面上的第二个jQuery引用,并且标题中的javascript中断.
有没有办法让我告诉脚本管理器jQuery已经加载到页面中,以便第二个引用不会被添加?或者,有没有办法告诉脚本管理器或Web窗体框架检查页面是否存在现有的jQuery引用?