C#中 sqlDataRead 的三种方式遍历读取各个字段数值

-------------------------------------------------------------------------------------------------

数据库的查询分析器中写上如下代码:

ccreate table studentname
(
 id  int   primary key  identity(1,1) not null ,
name nvarchar(500) not null
)

insert into studentname values(‘long‘)

insert into studentname values(‘long‘)

insert into studentname values(‘long‘)

insert into studentname values(‘long‘)

insert into studentname values(‘long‘)

insert into studentname values(‘chao‘)

insert into studentname values(‘chao‘)

--sql server 2012 通过。

---------------------------------------------------------------------------------------------------

以下是第一种方法:

using System.Data;

using System.Data.SqlClient;

string constr = "server=localhost;uid=sa;pwd=longshicheng;database=Student";

SqlConnection conn = new SqlConnection(constr);

SqlCommand cmd = new SqlCommand("select * from studentname", conn);

conn.Open();

SqlDataReader rdr = cmd.ExecuteReader();
            string makestr = "";
            DataTable table = new DataTable();
            table.Load(rdr);  //数据表装入 dataReader 。
            string result="";
            for (int i = 0; i < table.Rows.Count; i++) // 遍历行
            {
                for (int j = 0; j < table.Columns.Count; j++) //遍历列
                {
                    result += table.Rows[i][j].ToString(); //逐行逐列显示每个单元格的数值。
                }
                result += Environment.NewLine;  //一行遍历完成就写入回车。
            }
            txtlab.Text = result;

/***************************************************************/

以下是第二种方法:

string constr = "server=localhost;uid=sa;pwd=longshicheng;database=Student";

SqlConnection conn = new SqlConnection(constr);

SqlCommand cmd = new SqlCommand("select * from studentname", conn);

conn.Open();

SqlDataReader rdr = cmd.ExecuteReader();
            string makestr = "";
            for (int k = 0; k < rdr.FieldCount; k++) //获取字段名称
            {
                makestr += rdr.GetName(k) + "\t";  //载入字段名称
            }
            makestr += Environment.NewLine;  //换行
            makestr = makestr + "---------------------------------------------"+Environment.NewLine;
            while (rdr.Read())  //逐行读取每一笔记录
            {
                for (int t = 0; t < rdr.FieldCount; t++)  //逐列读出
                {
                    makestr = makestr + rdr[t].ToString() + "\t"; //累加每一行,也就是逐个字段读出对应的数值
                }
                makestr = makestr + Environment.NewLine; //又一行
            }
            txtinfo.Text = makestr;
            rdr.Close(); //关闭
            conn.Close();
        }

以下是第三种方法:

string constr = "server=localhost;uid=sa;pwd=longshicheng;database=Student";

SqlConnection conn = new SqlConnection(constr);

SqlCommand cmd = new SqlCommand("select * from studentname", conn);

conn.Open();

SqlDataReader rdr = cmd.ExecuteReader();
            string makestr = "";
             
            for (int k = 0; k < rdr.FieldCount; k++) //获取字段名称
            {
                makestr += rdr.GetName(k) + "\t";  //载入字段名称
            }
            makestr += Environment.NewLine;  //换行
            makestr = makestr + "---------------------------------------------" + Environment.NewLine;
            while (rdr.Read())  //逐行读取每一笔记录
            {
                makestr = makestr + rdr.GetValue(0) + " \t" + rdr.GetValue(1).ToString() + "\t";
                makestr = makestr + Environment.NewLine;
            }
            txtother.Text = makestr;
            rdr.Close(); //关闭
            conn.Close();

以上所有方法运行结果均如下:

id    name    
---------------------------------------------
1     long  
2     long    
3     long    
4     long     
5     long     
6     chao    
7     chao

原文地址:https://www.cnblogs.com/simple-article/p/9576423.html

时间: 2024-11-05 22:38:51

C#中 sqlDataRead 的三种方式遍历读取各个字段数值的相关文章

继承关系中的第三种方式:利用&lt;union-subclass&gt;(补充)

继承关系中的第三种方式:利用<union-subclass>   代码:   映射文件(其他的代码和其他继承关系相同)   Person.hbm.xml   <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/

javascript中构造函数的三种方式

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> // 创建函数的三种方式: // 1 函数声明 // 2 函数表达式 //

JS中创建对象的三种方式

<script> 2 //创建对象的三种方式 3 // 1.利用对象字面量(传说中的大括号)创建对象 4 5 var obj1 = { 6 uname: 'ash', 7 age: 18, 8 sex: "女", 9 sayhi: function() { 10 console.log("hello kitty"); 11 12 } 13 } 14 15 //访问属性的两种方法 16 console.log(obj1.uname); 17 console

实现JavaScript中继承的三种方式

一.原型链继承  在原型链继承方面,JavaScript与java.c#等语言类似,仅允许单父类继承.prototype继承的基本方式如下: 代码如下: function Parent(){} function Child(){} Child.prototype = new Parent(); 通过对象Child的prototype属性指向父对象Parent的实例,使Child对象实例能通过原型链访问到父对象构造所定义的属性.方法等.  构造通过原型链链接了父级对象,是否就意味着完成了对象的继承

SQL Server中Upsert的三种方式

本文介绍了SQL Server中Upsert的三种常见写法以及他们的性能比较. SQL Server并不支持原生的Upsert语句,通常使用组合语句实现upsert功能. 假设有表table_A,各字段如下所示: int型Id为主键. 方法1:先查询,根据查询结果判断使用insert或者update IF EXISTS (SELECT 1 FROM table_A WHERE Id = @Id) BEGIN UPDATE dbo.table_A SET Value = @Value WHERE

三种方式遍历ArrayList

package com.Test01; import java.util.ArrayList;import java.util.Iterator; public class ArrayListDemo { public static void main(String[] args) { //创建ArrayList集合对象 ArrayList<Student> array = new ArrayList<Student>(); //创建学生对象 提前定义学生类 Student s1

Struts2学习(二)运行Action中方法的三种方式

1.运行execute()方法 一般的能够直接在action中书写execute,调用action时会自己主动运行此方法 2.配置method方法 在struts.xml中配置action时.写method属性设置方法.例如以下所看到的.这样写能够在一个action类中写多个运行的方法.简化结构. <package name="user" extends="struts-default" namespace="/user"> <

c# number求和的三种方式

直接看源代码: 总结: 第一种方式,利用中间变量进行累加,这种方式最简单粗暴: 第二种方式; 利用我们linq aggretion(聚合)的原理,有点函数编程的感觉,每一次求和的结果,参与到下一次的计算中: 第三种方式:经典的递归: 三种方式,结果没有什么,差异,更过的是体会实现过程: /// <summary> /// 这种是利用中间变量实现累加的一个过程: /// </summary> static void Sum() { int sum = 0; int n = 3; fo

FileReader读取文件的三种方式

package com.agoly.test; //import java.io.*; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class FileTest { public static void main(String[] args) { // 读取文件的方式一:逐个字符来读取文本文件 FileReader fr = null; try { fr