有什么办法可以把表与表之间的relation取出来放到DataSet里? 我觉得做不了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好象只能用datset创建关系,在数据库中已有的关系,好象引用不出来 我也想知道,现阶段只知道要在dataset中建,不能把数据库里的引用出来 选中表--->右键 ---> 新建关系--->。。 使用强类型数据集在设计时添加关系,也可以通过DataSet.Relations.Add动态添加关系http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx 楼主的意思是直接从数据库中把关系映射到DataSet上,而不是应用zhzuo的做法。我和楼主的意思一样。作不到! 呵呵, 我倒是找到一种方法,欢迎大家指教:string myConnString = "Provider=SQLOLEDB;Data Source=server;Initial Catalog=Duwamish7;Integrated Security=SSPI;Connect Timeout=30";OleDbConnection conn = new OleDbConnection(myConnString);DataSet ds = new DataSet();using (conn){ conn.Open(); //取表 DataTable dataTalbeschema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[]{ null, null, null,"TABLE" } ); //取表结构 foreach (DataRow tableRow in dataTalbeschema.Rows) { String tableName = tableRow["Table_Name"].ToString(); string sql = "select * from " + tableName ; OleDbDataAdapter oda= new OleDbDataAdapter(sql,conn); oda.MissingSchemaAction = MissingSchemaAction.AddWithKey; oda.FillSchema(ds,SchemaType.Mapped,tableName); } //添加Relation DataTable dtfk = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys,null ); foreach (DataRow fkRow in dtfk.Rows) { String fkName = fkRow["Fk_Name"].ToString(); DataColumn parentColumn = ds.Tables[fkRow["Pk_Table_Name"].ToString()].Columns[fkRow["Pk_Column_Name"].ToString()]; DataColumn childColumn = ds.Tables[fkRow["Fk_Table_Name"].ToString()].Columns[fkRow["Fk_Column_Name"].ToString()]; ds.Relations.Add(fkName,parentColumn,childColumn); } conn.Close();}详细了解请参看MSDN "GetOleDbSchemaTable"帮助 请问,这个正则表达式搜索空白行 文本虚拟打印机打印.net软件内容出现乱码 Repeater导出Excel问题 有关进(线)程同步的问题 9/255为啥是0呢? 有个C#自动更新缓存问题,谁帮帮忙 开发连锁管理软件(通过INTERNET实现SQL SERVER数据库互访) 串口关闭出错的问题,代码如下 使用vs.net 2003开发用于PPC的“智能设备应用程序”,怎样将dataGrid联接到SQL Server数据库? 请问TimePicer里的Checked怎么不起作用了。 一段java代码转换C#的小问题. 直接显示下拉内容
http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
DataSet ds = new DataSet();
using (conn)
{
conn.Open();
//取表
DataTable dataTalbeschema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new Object[]{ null, null, null,"TABLE" } );
//取表结构
foreach (DataRow tableRow in dataTalbeschema.Rows)
{
String tableName = tableRow["Table_Name"].ToString();
string sql = "select * from " + tableName ;
OleDbDataAdapter oda= new OleDbDataAdapter(sql,conn);
oda.MissingSchemaAction = MissingSchemaAction.AddWithKey;
oda.FillSchema(ds,SchemaType.Mapped,tableName);
}
//添加Relation
DataTable dtfk = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys,null );
foreach (DataRow fkRow in dtfk.Rows)
{
String fkName = fkRow["Fk_Name"].ToString();
DataColumn parentColumn = ds.Tables[fkRow["Pk_Table_Name"].ToString()].Columns[fkRow["Pk_Column_Name"].ToString()];
DataColumn childColumn = ds.Tables[fkRow["Fk_Table_Name"].ToString()].Columns[fkRow["Fk_Column_Name"].ToString()];
ds.Relations.Add(fkName,parentColumn,childColumn);
}
conn.Close();
}详细了解请参看MSDN "GetOleDbSchemaTable"帮助