Sto importando tabelle da un database Oracle, utilizzando un dataAdapter VB.NET. Io uso il comando "fill" per aggiungere i dati importati a un DataSet. Come è possibile definire una colonna specifica di un DataTable come PrimaryKey, dopo che DataTable è già pieno di dati?Come definire una colonna DataBase VB.NET come chiave primaria dopo la creazione
risposta
È possibile impostare la chiave primaria di una tabella:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(1) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
Per essere in grado di utilizzare la chiave primaria, è necessario assicurarsi che tutti i valori per la colonna presentata sono unici.
Io lavoro principalmente in C# e hanno un paio di metodi di estensione che uso per "mettere ordine" le chiamate ho bisogno di fare, che si potrebbe prendere in considerazione la traduzione di VB e l'utilizzo di:
public static void SetPrimaryKey(this DataTable value, string columnName)
{
value.PrimaryKey = new DataColumn[] { value.Columns[columnName] };
}
public static DataRow FindByPrimaryKey(this DataTable value, object key)
{
return value.Rows.Find(key);
}
// I can then do:
DataTable table = CallToRoutineThatGetsMyDataTable();
table.SetPrimaryKey("PKColumnName");
DataRow result = table.FindByPrimaryKey("valueToFindWith");
Finché i valori nella colonna sono unici
table.PrimaryKey = new DataColumn[] { table.Columns["Id"] };
regolare per i vostri nomi di colonna.
Ecco un one-liner in VB (la domanda era con "using VB.NET"). Questo esempio è con 2 colonne indicizzate:
table.PrimaryKey = New DataColumn() {table.Columns("column1"), _
table.Columns("column2")}
Aggiornamento: Ed ecco un altro one-liner su come utilizzare questo indice 2 colonne di trovare una riga:
table.Rows.Find(New Object() {value1, value2}) '<- DataRow returned
Grazie per la risposta Rob - C'è un leggero problema con la versione VB anche se l'indice dovrebbe essere a base zero:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(0) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
- 1. Come definire chiave primaria composta in SQLAlchemy
- 2. Mappatura di una chiave primaria come chiave esterna nel database
- 3. Imposta la colonna come chiave primaria se la tabella non ha una chiave primaria
- 4. Come posso definire una chiave primaria composita in SQL?
- 5. Come definire una tabella senza chiave primaria con SQLAlchemy?
- 6. come aggiungere una chiave primaria a una tabella nei binari
- 7. Come modificare la colonna chiave primaria in Grails?
- 8. Quando dovrei contrassegnare una colonna come chiave primaria?
- 9. Creazione di una tabella nel database h2 utilizzando la sequenza predefinita per la chiave primaria
- 10. come aggiungere una nuova colonna alla chiave primaria composita esistente
- 11. Eloquent: usa un'altra colonna come chiave primaria su una relazione
- 12. Come rinominare una colonna chiave primaria in MySQL?
- 13. Visualizzazioni MySQL in Navicat - Come definire "chiave primaria"?
- 14. Come definire una chiave composta in Persistente
- 15. autoincremento chiave primaria nel database Oracle
- 16. Una chiave esterna può agire come una chiave primaria?
- 17. SQL: impostare colonna esistente come chiave primaria in MySQL
- 18. Come eliminare usando solo la chiave primaria?
- 19. database: chiave primaria, cluster o non cluster
- 20. Definire una chiave primaria unica basata su 2 colonne
- 21. Come posso aggiungere un INDICE con Doctrine 2 a una colonna senza renderlo una chiave primaria?
- 22. Devo definire la chiave primaria per ogni entità in Realm?
- 23. Impossibile assemblare alcuna colonna chiave primaria per la tabella mappata
- 24. Come aggiungere un'associazione EF6 a una chiave candidata/chiave univoca che non è la chiave primaria?
- 25. impedisce la chiave primaria intera autoincrementante?
- 26. SQLSERVER: Come modificare una chiave primaria int della tabella esistente per diventare una colonna Identity?
- 27. primo database - EntityType xxx non ha una chiave definita. Definire la chiave per questo EntityType
- 28. Crea una tabella con la chiave primaria utilizzando jOOQ
- 29. Entity Framework Colonna multipla come chiave primaria di Fluent Api
- 30. Come impostare una chiave primaria in MongoDB?