当前位置:编程学习 > C#/ASP.NET >>

.net网站老是报列不属于该表

网站老是报某一列不属于该表,头都大了, 不知道是什么原因啊?这个会不会是数据库配置的问题呢?就是数据库用户数?还有说是数据连接conn不要静态化?这个什么意思?我是用DLL里面封装数据库连接,我只需要传参数进去就行了。头都大了 --------------------编程问答-------------------- 这个只要对数据库一操作就报错,我看表里面也有该字段啊,在服务器上面也没办法跟踪 --------------------编程问答-------------------- 哪报滴错啊,也没说,是执行SQL还是神马,
要不你就哪错,上哪块的代码。 --------------------编程问答-------------------- 症状不完整,是不是还有 其实数据库明明存在这个列 但是就是报错
偶尔正常?
如果是的话,优化你的数据库连接,不要使用静态标签 
其实不使用静态 就恢复正常了
数据库连接过于频繁 导致的 优化吧  --------------------编程问答-------------------- [img=http://b121.photo.store.qq.com/psb?/V137hDvB0so96u/SHWKC8IF4vJ5AN9pAjMBz3V5gR8Xf*AAPGaNmsXv5vw!/b/dApcJUgsCgAA&bo=ngIAAbs!][/img] --------------------编程问答-------------------- 就是上面哪个错,我的函数是:
Dim sql As String
        sql = "select * from " & tablename & " where " & where
        'Singledata3 = sql

        conn.Open()
        If conn.State = System.Data.ConnectionState.Closed Then
            conn.Open()
        ElseIf conn.State = Data.ConnectionState.Broken Then
            conn.Close()
            conn.Open()
        End If
        Dim mydbdb As WanXi.Db.IWanxiDb
        mydbdb = New WanXi.Db.MsSQLDb(conn, tablename)
        Dim dt As Data.DataTable = mydbdb.FindSQL("select * from " & tablename & " where " & where)
        Dim i As Integer
        i = dt.Rows.Count
        If i = 0 Then
            Singledata3 = ""
        Else
            If IsDBNull(dt.Rows(0)(field)) Then
                Singledata3 = ""
            Else
                Singledata3 = dt.Rows(0)(field)
            End If
        End If

        mydbdb = Nothing
        dt = Nothing
        mydb = Nothing --------------------编程问答-------------------- 晕 图片不行啊
我连接是这样的:
Public conn As Data.SqlClient.SqlConnection = WanXi.Db.MsDbConn(".", "YKTCMS", "mksc", "abc123!@#$")

只是修改这参数 真正连接是在Dll里面

不使用静态什么意思啊?就是有时候可以 有时候就报错 --------------------编程问答-------------------- 仔细看看串拼的对吗 --------------------编程问答-------------------- 这种情况一般是你拼sql的时候有问题, --------------------编程问答--------------------
引用 6 楼  的回复:
晕 图片不行啊
我连接是这样的:
Public conn As Data.SqlClient.SqlConnection = WanXi.Db.MsDbConn(".", "YKTCMS", "mksc", "abc123!@#$")

只是修改这参数 真正连接是在Dll里面

不使用静态什么意思啊?就是有时候可以 有时候就报错

碰到过这样的错误
一般都是超时或者请求访问次数过于频繁导致的,解决办法就是优化你的连接语句。放到配置文件里
尽量少的打开和关闭数据库 --------------------编程问答-------------------- “/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

列“URL”不属于表 。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentException: 列“URL”不属于表 。

源错误: 


行 87:               FieldList = "URL,Text"
行 88:               mydb = New WanXi.Db.MsSQLDb(conn, tablename)
行 89:               Response.Write(ListData(number, Modelstr, tablename, FieldList, mydb, where))
行 90:            %>
行 91:            
 

源文件: D:\WebSite\mksc.cn\index.aspx    行: 89 

堆栈跟踪: 


[ArgumentException: 列“URL”不属于表 。]
   System.Data.DataRow.GetDataColumn(String columnName) +1899263
   System.Data.DataRow.get_Item(String columnName) +10
   Field.ListData(Int32 number, String Modelstr, String tablename, String FieldList, IWanxiDb myDb, String where) +950
   ASP.index_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in D:\WebSite\mksc.cn\index.aspx:89
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2065835
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24
   System.Web.UI.Page.Render(HtmlTextWriter writer) +26
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896

 
--------------------编程问答-------------------- conn 用new出来的 --------------------编程问答-------------------- 把sql语句打印出来 放数据库执行下 看有没有问题  一般这样的问题  肯定是sql语句有问题的  --------------------编程问答-------------------- SQL语句应该没问题,可能就像id270说的:
一般都是超时或者请求访问次数过于频繁导致的,解决办法就是优化你的连接语句。放到配置文件里
尽量少的打开和关闭数据库 --------------------编程问答-------------------- 拼的SQL语句很容易出问题,最好检查一下最终 的SQl语句 --------------------编程问答-------------------- 很明显的问题,你SQL语句里面的列名在数据表中不存在,下个断点把报错的sql拿出来放到数据库中一查询就能够知道什么问题。 --------------------编程问答-------------------- 有可能是sql语句查询的表名不正确,所属字段不对应这个表,可以对照数据库查看是否字段和表匹配。
或者是字段名错误,调试断点跟踪查看吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,