web app抛出奇怪的sql错误

时间:2012-07-20 07:54:13

标签: asp.net sql-server-2005

如果这不是发布此内容的好地方,请道歉,但我们正在使用在SQL 2005实例上运行的web ap遇到一些非常奇怪的事情。

该应用程序是一个.net网络应用程序,并且可以像您期望的那样全天进行大量查询。

但间歇性地我们遇到错误,例如Exception消息:* DataBinding:' System.Data.DataRowView'不包含名称为' column_name' *的属性。当它显然在查询中有该列时 - 如果手动运行工作正常..这是一个SQL实例的症状可能是内存不足还是只是一般很差?

当然我们无法跟踪代码中的任何问题!

不幸的是,Web应用程序和SQL实例都在同一个盒子上,这是一个4GB ram的Xeon,所以绝不是超级强大的..

PS。它不仅仅是上面的查询似乎已经失败了,而是一些linq-to-sql的东西,实际上它经历了不喜欢DB的阶段......任何帮助/建议都会很高兴收到

感谢

NAT

一些代码..无法看到下面的任何问题..但上面的例外基本上是说找不到列a或b或c ......

Dim conn As New SqlConnection(sitedb)
    Dim cmd As New SqlCommand
    cmd.CommandText = "SELECT a,b,c FROM Table"
    Dim da As New SqlDataAdapter(cmd)
    Dim dt As New DataTable

    Try
        conn.Open()

        da.Fill(dt)

    Catch ex As Exception
        Throw ex
    Finally
        conn.Close()
    End Try

    if dt.Rows.Count > 0 then
       Grid.DataSource = dt **<- dies here....**
       Grid.DataBind()
    end if

如何从明显有效的查询中返回行,然后在刚抓取的列上抛出indexoutofrange? 我认为真正的问题是我们遇到的问题都不是代码相关的......数据库似乎经历了一些投掷摇摆的事情,我们遇到了一些似乎没有意义的奇怪异常。这可能是资源相关的,如果盒子功能不足,还是......?

1 个答案:

答案 0 :(得分:2)

您正在发布Conn.Close,因此我假设记录集已断开连接。但是,db库的游标位置确定是在执行时还是在获取时拉取行,这可以是db-session-level或连接级设置。

由于隐式处于服务器端分页模式,是否有可能连接池或某些其他并行行为导致您的记录集无法被提取?

尝试在使用数据集时保持连接打开,如果解决了这个问题,那么你就会知道继续咆哮这个树。