普通的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;
}
}
}
<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name="Default" connectionString="Data Source=.;
Initial Catalog=EFDb;
Integrated Security=true"/> </connectionStrings></configuration>
这里需要获取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)同时获取表的架构实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- ASP.NET中实现把Json数据转换为ADO.NET DataSet对象