DataSet 类 (二) 读取数据

本文介绍如何使用DataSet对象进行数据集管理,包括创建DataSet、填充数据、访问表和行等操作,并提供了一个完整的示例代码。

使用方法

1、创建DataSet对象

DataSet ds = new DataSet();

DataSet ds = new DataSet("DataSetName");

2、用数据集填充DataSet

最常用的是DataAdapter对象的Fill()方法给他填充数据

1

DataSet ds = new DataSet();

SqlDataAdapter adapt = new SqlDataAdapter(sqlcmd,con)

adapt.Fill(ds,"mytest");

2

DataSet ds=new DataSet();

DataTable dt=new DataTable("newTable");

ds.Tables.Add(dt);

3

DataSet ds=new DataSet();

DataTable dt=ds.Tables.Add("newTable");

3、访问DataSet中的表、行和列 值

1访问每个 DataTable

按表名访问:ds.Tables["mytest"] //指定DataTable对象mytest(即访问DataSet中名为mytestDataTable

按索引(索引基于0的)访问:ds.Tables[0] //指定DataSet中的第一个DataTable

2访问DataTable中的行

ds.Tables["mytest"].Rows[n] //访问mytest表 的第n+1行(行的索引是从0开始的)

ds.Tables[i].Rows[n] //访问DataSet中的第i+1DataTable 的第n+1列(列的索引是从0开始的)

3访问DataTable中的某个元素

ds.Tables["mytest"].Rows[n][m] //访问mytest表的第n+1行第m+1列的元素

ds.Tables[i].Rows[n][m] //访问DataSet中的第i+1DataTable 表的第n+1行第m+1列的元素

ds.Tables["mytest"].Rows[n][name] //访问mytest表的第n+1name列的元素

ds.Tables[i].Rows[n][name] //访问DataSet中的第i+1DataTable 表的第n+1name列的元素

4DataTable中的列名

ds.Tables["mytest"].Columns[n] //取出mytest表的n+1列列名

ds.Tables[i].Columns[n]

4、实例

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.SqlClient;

using System.Data;

namespace sqlconnection1

{

class Program

{

private void SQLConnectionF(string source, string select)

{

//创建连接

SqlConnection con = new SqlConnection(source);

SqlDataAdapter adapt = new SqlDataAdapter(select,con);

try

{

con.Open();

Console.WriteLine("connection is successful!");

}

catch (Exception e)

{

Console.WriteLine("connection error is :{0}", e.ToString());

}

//创建DataSet

DataSet ds = new DataSet();

//将数据添加到DataSet中

adapt.Fill(ds,"mytest");

//取出mytest表各列名

Console.WriteLine("{0,-15} {1,-10} {2,-10}",ds.Tables["mytest"].Columns[0],

ds.Tables["mytest"].Columns[1],ds.Tables["mytest"].Columns[2]);

//输出mytest表中第六行

DataRow row1 = ds.Tables["mytest"].Rows[5];

Console.WriteLine("{0,-15} {1,-10} {2,-10}",row1[0],row1[1],row1[2]);

//输出mytest表中第五行的第二列的值

DataRow row2 = ds.Tables["mytest"].Rows[4];

Console.WriteLine(" {0,-25} ", row2[1]);

//下列两种方法等效都等同于row2[1](即第五行的第二列的值)

Console.WriteLine(" {0,-25} ", ds.Tables["mytest"].Rows[4][1]);

Console.WriteLine(" {0,-25} ", ds.Tables["mytest"].Rows[4]["number"]);

//输出DataSet中的所有数据

foreach (DataRow row in ds.Tables["mytest"].Rows)

{

Console.WriteLine("{0,-15} {1,-10} {2,-10} {3}",row["name"] ,

row["number"] , row["low"] , row["high"]);

//取第三列的值

Console.WriteLine("{0,-15} ", row[3]);

}

Console.ReadLine();

con.Close();

}

static void Main(string[] args)

{

string sou = "server=duanyf//SQLEXPRESS;" + "Initial Catalog=master;" + "UID = sa;" + "Password = dyf123";

string sel = "SELECT name,number,low,high From dbo.spt_values";

Program sqlcon = new Program();

sqlcon.SQLConnectionF(sou, sel);

}

}

}


使用`torch.utils.data.Dataset`自定义数据读取的具体流程如下: 1. **导入必要的库**:导入`torch.utils.data`库,它提供了`Dataset`抽象基,用于构建自定义数据集。 ```python import torch.utils.data as data ``` 2. **定义自定义数据集**:创建一个新的,继承自`torch.utils.data.Dataset`。这个将用于封装和管理数据集。 ```python class ExampleDataset(data.Dataset): ``` 3. **初始化**:在的`__init__`方法中,进行必要的初始化操作。通常会接收数据集相关的数据作为参数,并将其存储在的属性中。 ```python def __init__(self, data): self.data = data ``` 4. **实现`__len__`方法**:该方法用于返回数据集的长度,即数据项的数量。 ```python def __len__(self): return len(self.data) ``` 5. **实现`__getitem__`方法**:该方法根据给定的索引`idx`,返回数据集中对应的单个数据项。通常需要对数据进行必要的处理和转换,以满足模型输入的要求。 ```python def __getitem__(self, idx): x = ... y = ... return x, y # 或者直接返回数据 # return self.data[idx] ``` 6. **自定义数据特性(可选)**:除了上述基本流程,还可以在自定义数据中实现更多特性,如定义和解析数据集结构、处理标签、进行数据清洗/过滤、样本预处理和转换等操作。建议自定义数据继承父`TorchCustomDataset`并注册到`CUSTOM_DATASETS`,以关联下游的模型训练任务。 ```python # 示例:自定义数据 YourCustomDataset 继承父 TorchCustomDataset class YourCustomDataset(TorchCustomDataset): def __init__(self, ...): super().__init__(...) # 实现自定义特性 ... ``` 以下是一个完整的示例代码: ```python import torch.utils.data as data class ExampleDataset(data.Dataset): def __init__(self, data): self.data = data def __len__(self): return len(self.data) def __getitem__(self, idx): return self.data[idx] # 使用示例 data_list = [1, 2, 3, 4, 5] dataset = ExampleDataset(data_list) print(len(dataset)) # 输出数据集长度 print(dataset[2]) # 输出索引为 2 的数据项 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值