分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

ADO.NET获取数据数据(DataSet)同时获取表的架构

发布时间:2023-09-06 01:31责任编辑:沈小雨关键词:.NET

普通的ADO.NET获取DataSet的写法如下:

using System.Configuration;using System.Data;using System.Data.SqlClient;public class SQLHelper{ ???private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString; ???public static DataSet GetDataSet(string sql) ???{ ???????using (SqlConnection conn =new SqlConnection(ConnectionString)) ???????{ ???????????SqlCommand cmd = new SqlCommand(sql, conn); ???????????SqlDataAdapter adapter = new SqlDataAdapter(cmd); ???????????DataSet ds = new DataSet(); ???????????conn.Open(); ???????????adapter.Fill(ds); ???????????return ds; ???????} ???}}
View Code
<?xml version="1.0" encoding="utf-8" ?><configuration> ?<connectionStrings> ???<add name="Default" connectionString="Data Source=.;Initial Catalog=EFDb;Integrated Security=true"/> ?</connectionStrings></configuration>
View Code

这里需要获取DataTable的主键信息,调试时发现没有主键信息,而实际数据库中是有主键(Id)

此时需要给SqlDataAdapter设置属性MissingSchemaAction为System.Data.MissingSchemaAction.AddWithKey

修改后的SQLHelper为

using System.Configuration;using System.Data;using System.Data.SqlClient;public class SQLHelper{ ???private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString; ???public static DataSet GetDataSet(string sql) ???{ ???????using (SqlConnection conn =new SqlConnection(ConnectionString)) ???????{ ???????????SqlCommand cmd = new SqlCommand(sql, conn); ???????????SqlDataAdapter adapter = new SqlDataAdapter(cmd); ???????????adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey; ???????????DataSet ds = new DataSet(); ???????????conn.Open(); ???????????adapter.Fill(ds); ???????????return ds; ???????} ???}}

ADO.NET获取数据数据(DataSet)同时获取表的架构

原文地址:http://www.cnblogs.com/godbell/p/8051418.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved