当前位置: 代码迷 >> C# >> 大神来给个思路 小弟我想让它while循环输出完成之后弹出对话框 显示输出完成 可是不知道messagebox加在哪里
  详细解决方案

大神来给个思路 小弟我想让它while循环输出完成之后弹出对话框 显示输出完成 可是不知道messagebox加在哪里

热度:89   发布时间:2016-05-05 03:32:20.0
大神来给个思路 我想让它while循环输出完成之后弹出对话框 显示输出完成 可是不知道messagebox加在哪里
   OracleDataReader dr = com.ExecuteReader();
            FileStream File = new FileStream("D:\\log.txt", FileMode.Open, FileAccess.ReadWrite);
            StreamWriter sw = new StreamWriter(File);
            while(dr.Read())
            {
                string a = dr.GetString(1);
                string b = dr.GetString(2);
                DateTime c = dr.GetDateTime(3);
                string d = dr.GetString(4);
                string x = dr.GetString(5);
                string f = dr.GetString(6);
                string g = dr.GetString(7);
                string h = dr.GetString(8);
                string i = dr.GetString(9);
                DateTime j = dr.GetDateTime(10);
                int k = dr.GetInt32(11);
                string l = dr.GetString(12);
                sw.WriteLine(a + "," + b + "," + c + "," + d + "," + x + "," + f + "," + g + "," + h + "," + i + "," + j + "," + k + "," + l);
            }    
            sw.Flush();
            sw.Close();
            File.Close();


每次表读完最后一行 显示没有可用的数据用于行或列,我想让它while循环输出完成之后弹出对话框 显示输出完成、在线等啊
------解决思路----------------------
这个你还是在上面加断点调试吧……看到底哪里出问题跳出了
------解决思路----------------------

和MessageBox无关,你这个肯定数据读取的问题
------解决思路----------------------
那你先將查询语句在分析器里面执行, 看下 X 对应的行, 有什么特别先.

或者將指定索引输出改为直接指定字段名来输出, 看下还会不会出现错误了.

DateTime  a =  ((dr["a"]) == DBNull.Value) ? DateTime.MinValue : Convert.ToDateTime(dr["a"]);
string  b = dr["b"].ToString();
int   c = ((dr["c"]) == DBNull.Value) ? 0 : Convert.ToInt32(dr["c"]);




------解决思路----------------------
这变量名让你起的稀碎

用个for循环不就得了,还一个一个的去取值啊
------解决思路----------------------
你数据库里到底有几列,总该知道吧

序号是从0开始的.
如果你有12列,那么应该从0开始,到11结束

不要写string l = dr.GetString(12);这种东西,不溢出才怪
------解决思路----------------------
断点,一步一步跟,不要只会等它报出个错误.

你必须知道报错的时候代码是循环到第几次,那一行的数据是什么,才好进行分析
  相关解决方案