首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

微软的技术真是够垃圾的,GetSchema ,GetOleDbSchemaTable 在不同数据库上表现不同,该如何处理

2012-04-30 
微软的技术真是够垃圾的,GetSchema ,GetOleDbSchemaTable 在不同数据库上表现不同以下两个函数,干的是一个

微软的技术真是够垃圾的,GetSchema ,GetOleDbSchemaTable 在不同数据库上表现不同
以下两个函数,干的是一个事情,在Access上和sql server 以及oracle 的表现各有不同。。。


DESCRIPTION 信息在Access 里能取到,
在其他数据库上取不出来 

实在无语。。。微软的技术真是够垃圾的

搞了半天,仍要写SQL取数据库的结构信息!!!!那微软封装这样的API干吗呢。其他属性两个接口返回同样的东西,一个是数值,一个是enum的定义。。。实在喷血啊。

 public DataTable GetColumns(string ConnectionStr, string tbname)
  {
  try
  {
  if (ConnectionStr != null && tbname != null)
  {
  SqlConnection con = new SqlConnection(ConnectionStr);
  con.Open();
  DataTable columnInfo = con.GetSchema(
  System.Data.SqlClient.SqlClientMetaDataCollectionNames.Columns,
  new string[] { null, null, tbname, null }
  );
  con.Close();
  return columnInfo;
  }
  }
  catch (System.Exception ex)
  {
  Trace.WriteLine(ex.Message);
  }


  return null;
  }



  public DataTable GetColumns(string ConnectionStr, string tbname)
  {
  try
  {
  if (ConnectionStr != null && tbname != null)
  {
  OleDbConnection con = new OleDbConnection(ConnectionStr);
  con.Open();
  DataTable columnInfo = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tbname, null });
  con.Close();
  return columnInfo;
  }
  }
  catch (System.Exception ex)
  {
  Trace.WriteLine(ex.Message);
  }

  return null;
  }


搞了一大堆的什么这个connection ,那个connection ... 不如JDBC一个。。。

垃圾!!!



[解决办法]
消灭垃圾的重任就交给楼下的大湿们了。
[解决办法]
留给楼下吐槽。
[解决办法]
不同的语言有不同的特性
[解决办法]
我很少用ado.net 

一个项目 一般只用到一种类型数据库吧 为什么非要用到他呢

探讨

引用:

哎~
这也能抱怨
就如
中国15E人口
每个人都是人,但是每个人拥有的财富,资源,知识 都是不同的

你不能抱怨 这个人懂英语懂汉语 而那个人只懂汉语


这个怎么能类比呢。。ADO。NET 就是要屏蔽各种数据库的差别才搞的一个数据访问层,既然搞了,还没擦干净屁股。。。还要用SQL来继续搞这个,搞那个。。。

[解决办法]
是自己的技术垃圾还是微软技术垃圾?
一看你的代码就是未入门的水平,从你的抱怨中看出你连最基本的几个.net数据提供者及数据库连接对象都不懂
[解决办法]
探讨

是自己的技术垃圾还是微软技术垃圾?
一看你的代码就是未入门的水平,从你的抱怨中看出你连最基本的几个.net数据提供者及数据库连接对象都不懂

[解决办法]
哎,满瓶子水不响,半瓶子水咣当。。。
每种技术都各有优缺点,动不动就说别人的东西垃圾,既然垃圾,那就不要用呗,全部自己写好了
[解决办法]
来看了下 ,感觉很不爽,想说点什么,欲言又止。。。。。。
[解决办法]
http://msdn.microsoft.com/en-us/library/system.data.common.dbproviderfactory.aspx



有些数据库如果连字段备注描述这个东西都没有,你是不是也要ado.net提供一个出来?

热点排行