zoukankan      html  css  js  c++  java
  • C#游标溢出(访问数据库)解决方案。

    1、存在问题的代码:

    foreach (DataColumn ukColumn in ukColumns){

      string sqlstr = "select *** from tablename where ***";

      OleDbCommand command = new OleDbCommand(sqlstr, bitsConn);

      OleDbDataReader reader = command.ExecuteReader();

      reader.Read();

        typestr = reader[0].ToString().Substring(0, 3);

        *****

      reader.Close();

    }

    2、出错点:OleDbDataReader reader = command.ExecuteReader(); 错误信息:游标溢出。

    3、解决方案一:

      增加代码:command.dispose();

    4、解决方案二:

         使用代码:useing(OleDbCommand command = new OleDbCommand(sqlstr, bitsConn);)

          using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。


                        string sqlstr = "select nvl(max(TYPE),0) from BITSMETACOLUMN where lower(ENAME)=lower('" + ukColumn.ColumnName + "') and METATABLEID=(select ID from BITSMETATABLE where lower(ENAME)='" + tableName.ToLower() + "')";
                        OleDbCommand command = new OleDbCommand(sqlstr, bitsConn);
                        OleDbDataReader reader = command.ExecuteReader();
                        reader.Read();
                        if (reader[0].ToString() == "0")
                        {
                            throw new Exception("基表【BITSMETACOLUMN】UK定义异常:sqlstr=" + sqlstr);
                        }
                        typestr = reader[0].ToString().Substring(0, 3);
                        reader.Close();foreach (DataColumn ukColumn in ukColumns)
  • 相关阅读:
    【洛谷P1948】[USACO08JAN]电话线
    【洛谷P1967】[NOIP2013]货车运输
    【题解】洛谷P2926 [USACO08DEC]拍头Patting Heads
    【题解】洛谷P1495 曹冲养猪 (中国剩余定理)
    【题解】POJ1845 Sumdiv(乘法逆元+约数和)
    【题解】P1516 青蛙的约会(Exgcd)
    【数论】同余问题
    DP Cleaning Up 打扫卫生
    set+链表 【POJ Challenge】生日礼物
    并查集 [Scoi2010]游戏
  • 原文地址:https://www.cnblogs.com/advocate/p/1750952.html
Copyright © 2011-2022 走看看