zoukankan      html  css  js  c++  java
  • ado.net基本操作复习

    public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/html";
              //建立一个数据库的连接
                //打开数据库
                //建立一个数据库的命令
                //输入命令的文本
                //执行这个命令
                //得到其结果
                //对结果进行处理
                //...还是linq方便
                SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=图库;Integrated Security=True");
                try
                {
                    
                    conn.Open();
                    context.Response.Write("成功打开数据库:图库");
                    SqlCommand cmd = conn.CreateCommand();
                    cmd.CommandText="select 文件名 from 图片库";
                    
                    SqlDataReader reader = cmd.ExecuteReader();
    
                    while (reader.Read())
                    {
                        context.Response.Write(reader.GetString(reader.GetOrdinal("文件名")));
                        context.Response.Write("<br/>");
                    }
                }
                catch (Exception e)
                {
    
                    context.Response.Write(e.Message);
                }
                finally {
                    conn.Close();
                }
            }
    其实只是想得到这个文件名字段所包含的字符串集合,一开始在第一句中
    context.Response.ContentType = "text/html";
    写成了"image/jpeg",结果文本显示出来总有问题

    image

    http报文的类型不对,显示自然不正确!

    GetOrdinal,Ordinal:

    ordinal numeral 序数词 ; 序数

    ordinal type [计] 顺序类型 ; 有序型 ; [计] 序数型式 ; [计] 序数类型

    Ordinal numbers 序数词 ; 序数

    image

    如果要得到一个时间类型的字符串,需要改变一下获取数据的方式:
    public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/html";
                SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=图库;Integrated Security=true");
                conn.Open();
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select 创建时间 from 图片库";
                var reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    context.Response.Write(reader.GetSqlDateTime(0));
                    context.Response.Write("<br/>");
                }
                conn.Close();
            }

    紫色部分,因为读取的是一个时间类型的数据,所以需要使用GetSqlDateTime方法来获取,因为只有一个字段,所以后面的参数用了0

    改成1呢?自然不行,因为读取出来的数据只有1列

    索引超出了数组界限。

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

    异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。

    源错误:


    行 23:             while (reader.Read())
    行 24:             {
    行 25:                 context.Response.Write(reader.GetSqlDateTime(1));
    行 26:                 context.Response.Write("<br/>");
    行 27:             }
     
     
  • 相关阅读:
    2018年3月至4月小结
    前端面试中,经常看到垂直居中与水平居中,实际排版用的多吗?
    Hbuilder配置识别逍遥安卓模拟器
    php静态变量与方法与phar的使用
    切面反射获取方法
    Spring:源码解读Spring IOC原理
    怎样批量提取JPG照片的文件名
    如何1秒批量提取电脑文件夹中的所有文件、文件夹名字到txt/excel
    用powermock 方法中new对象
    springboot单元测试自动回滚:@Transactional
  • 原文地址:https://www.cnblogs.com/angestudy/p/2000356.html
Copyright © 2011-2022 走看看