Importación de tablas desde una base de datos Oracle, utilizando un dataAdapter de VB.NET. Uso el comando "completar" para agregar los datos importados a un conjunto de datos. ¿Cómo es posible definir una columna específica de una DataTable como PrimaryKey, después de que la DataTable ya esté llena de datos?Cómo definir una columna DataTable de VB.NET como clave principal después de la creación
Respuesta
Usted puede establecer la clave principal de una tabla por:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(1) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
Para poder utilizar la clave primaria, es necesario asegurarse de que todos los valores de la columna indicada son únicos.
I principalmente trabajar en C# y tener un par de métodos de extensión que utilizo para "ordenadas" las llamadas que tengo que hacer, que es posible que desee tener en cuenta que se traduce en VB y usando:
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");
Mientras los valores de la columna son únicos
table.PrimaryKey = new DataColumn[] { table.Columns["Id"] };
ajustar para sus nombres de columna.
Aquí está un trazador de líneas en VB (la pregunta era con "usar VB.NET"). Este ejemplo es con 2 columnas indexadas:
table.PrimaryKey = New DataColumn() {table.Columns("column1"), _
table.Columns("column2")}
Actualización: Y aquí es otra de una sola línea sobre el uso de este índice 2 columnas para encontrar una fila:
table.Rows.Find(New Object() {value1, value2}) '<- DataRow returned
Gracias por la respuesta Rob - hay un pequeño problema con la versión vb, ya que el índice debe estar basado en cero:
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. SQL: establecer la columna existente como clave principal en MySQL
- 2. ¿Cómo cambiar la columna de clave principal en griales?
- 3. Vistas de MySQL en Navicat: cómo definir 'clave principal'?
- 4. ¿Es una buena idea usar una columna calculada como parte de una clave principal?
- 5. marcar la columna existente como clave principal en la tabla de datos
- 6. sqlite: ¿Debo usar una columna de texto como clave principal, o convertirla mediante una función hash?
- 7. Definir una clave principal única basada en 2 columnas
- 8. Agregar columna de clave principal en la tabla SQL
- 9. ¿Puede la misma columna tener clave principal y restricción de clave externa en otra columna
- 10. ¿La creación de una clave principal en varias columnas genera índices para todas ellas?
- 11. ¿Cómo puedo actualizar una fila en una DataTable en VB.NET?
- 12. cómo agregar una clave principal a una tabla en rieles
- 13. ¿Crear identidad de SQL como clave principal?
- 14. Cómo convertir una columna de DataTable en una lista
- 15. jQuery Datatable Pregunta: Centrado de datos de la columna después de la inserción de datos
- 16. ¿Cómo obtener el SqlType de una columna en una DataTable?
- 17. Clasificación de clave principal
- 18. Pregunta SQL para encontrar la clave principal de una tabla?
- 19. LINQ a SQL tiene la columna de palabras clave como nombre de columna, como citar/escapar
- 20. ¿Cómo puedo determinar si una columna está en la clave principal de su tabla? (SQL Server)
- 21. Creación de HTML de una C utilizando DataTable #
- 22. Cómo localizar el nombre de columna DataTable
- 23. Cambiar columna de clave principal en SQL Server
- 24. Cómo cambiar el valor de la columna DataTable sin bucle?
- 25. Definir cadena ENUM en VB.Net
- 26. MySQL - usando String como clave principal
- 27. Cómo cambiar la fuente de datos en una cuadrícula de datos YUI después de la creación
- 28. MySQL clave principal de multicolumna
- 29. Obtener clave principal después de guardar un ModelForm en Django
- 30. PHP PDOStatement: Fetch A Row, como la primera columna como la clave de una matriz