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

关于(查询数据时暂时建立的主键)

2012-07-28 
关于(查询数据时临时建立的主键)写有关在数据库中查询信息的代码,查询表 XX 中ID中是否有 9527 这项,ID已

关于(查询数据时临时建立的主键)
写有关在数据库中查询信息的代码,查询表 XX 中ID中是否有 9527 这项,ID已经设置为主键
   
  OracleConnection thisConnection = new OracleConnection(@"Data Source=**;User ID=**;Password=**");
  OracleDataAdapter thisDataAdapter = new OracleDataAdapter("SELECT ID FROM XX", thisConnection);
  OracleCommandBuilder thisBuilder = new OracleCommandBuilder(thisDataAdapter);
  DataSet thisDataSet = new DataSet();
  thisDataAdapter.Fill(thisDataSet, "OOXX");
   
  //设置主键
  DataColumn[] keys = new DataColumn[1];
  keys[0] = thisDataSet.Tables["OOXX"].Columns["ID"];
  thisDataSet.Tables["OOXX"].PrimaryKey = keys;
   
  //查询
  DataRow findRow = thisDataSet.Tables["OOXX"].Rows.Find(9527);  
   
  //判断
  if (findRow == null)
  {
  Console.WriteLine("9527 not found");
  }
  else
  {
  Console.WriteLine("9527 exits");
  }
  thisConnection.Close();
   


请问:
这里设置主键的具体作用?原表中ID已经设置为主键了,为何这里还要设置主键?这里是把 内存中的 表数据 的ID列 设置为主键了吗?临时设置主键还有更简单的方法不?
   
Thanks!

[解决办法]

探讨

那么这里为何还要单独标识PrimaryKey呢???原表不设置了主键吗?

引用:
在将一个单独的 DataColumn 标识为 DataTable 的 PrimaryKey 时,表会自动将列的 AllowDBNull 属性设置为 false,并将 Unique 属性设置为 true。 如果是多列主键,则只有 AllowDBNull 属性自动设置为 false。

热点排行