读书人

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

发布时间: 2012-07-28 12:25:13 作者: rapoo

关于(查询数据时临时建立的主键)
写有关在数据库中查询信息的代码,查询表 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。

读书人网 >C#

热点推荐