码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-12-17 10:57:42      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:ide   name   size   图片   数据库   public   play   closed   turn   

普通的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)同时获取表的架构

标签:ide   name   size   图片   数据库   public   play   closed   turn   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!