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:             }
     
     
  • 相关阅读:
    体验js之美第八课-面向对象创建和继承终结篇
    从零到一:用Phaser.js写意地开发小游戏(Chapter 3
    HTML5 进阶系列:拖放 API 实现拖放排序
    五款轻量型bug管理工具横向测评
    用原生js写一个"多动症"的简历
    HTML5中新增Javascript特性
    Angular2入门系列(五)———— 路由参数设置
    移动端真机调试实战经验
    Java经典习题44
    Java经典习题43
  • 原文地址:https://www.cnblogs.com/angestudy/p/2000356.html
Copyright © 2011-2022 走看看