Tengo una base de datos con dos tablas. Ambas tablas están relacionadas y tienen el mismo campo clave. Por ejemplo, ambos tienen filas de datos correspondientes a ISBN = 12345, pero las dos tablas tienen datos diferentes sobre ese ISBN.Necesito ayuda para trabajar con bases de datos en C#
Por lo tanto, estoy tratando de averiguar cómo mostrar los datos de ambas tablas en un dataGridView. He intentado con algunos comandos SQL que encontré en línea, pero parece que los comandos en C# pueden diferir de las consultas SQL normales.
Supongamos que la tabla 1 tiene estos campos: ISBN, color, tamaño y tabla2 tiene los campos ISBN, peso.
Necesito una forma de mostrar ISBN, color, tamaño, peso en mi vista de cuadrícula de datos. Creo que tendré que hacer esto de alguna manera con un adaptador. Puedo conectarme y hacer consultas en las tablas individualmente, y mostrar esos datos en mi vista de cuadrícula de datos, pero no puedo encontrar la manera de mezclar datos de dos tablas separadas.
Si tiene un buen recurso que pueda leer sobre esto, me encantaría tenerlo, mi google-fu me está fallando.
He aquí un ejemplo de algo que puedo hacer ahora con mi base de datos:
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'database1DataSet.Book' table. You can move, or remove it, as needed.
this.bookTableAdapter.Fill(this.database1DataSet.Book);
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\Geoff\Documents\cs 351\Database1.accdb" + ";Persist Security Info=False;";
OleDbConnection conn = new OleDbConnection(connectionString);
string query = "select * from Book where ISBN = 12345";
OleDbCommand com = conn.CreateCommand();
com.CommandText = query;
OleDbDataAdapter adapter = new OleDbDataAdapter(com);
DataSet data = new DataSet();
conn.Open();
adapter.Fill(data);
conn.Close();
dataGridView1.DataSource = data.Tables[0];
}
Así que, esencialmente, me gustaría hacer lo que he hecho antes, pero quiero incluir los datos de una mesa diferente también. La otra tabla también tiene un campo de clave ISBN, y contiene valores de ISBN que coinciden con la primera tabla.
Hola @Jeff y bienvenidos a StackOverflow. Si bien nos gusta ayudar, también nos gusta ver lo que tienes hasta ahora. ¿Puede darnos un ejemplo de algunos datos y cómo existen actualmente? Presta atención para mostrar las partes problemáticas. Podríamos decir simplemente "haz una izquierda", pero eso no te ayuda. – jcolebrand
De acuerdo, si está trabajando con bases de datos en C#, existe un universo completo de soluciones posibles, cada una con sus fortalezas y debilidades. Por ejemplo, podría investigar una solución LINQ to SQL o Entity Framework en lugar de ir por SQL sin procesar. Es posible que haya visto ejemplos de estas tecnologías, por lo que cree que "los comandos en C# pueden diferir de las consultas SQL normales". Tenga la seguridad de que C# admite SQL 'normal' a través de ADO.net, pero admite mucho más, incluidas las consultas como objetos de lenguaje de primera clase a través de LINQ. ¡Te estás embarcando en un viaje emocionante! :) –
Además de mi ejemplo que acabo de publicar, definitivamente estoy de acuerdo con James. Hay muchas posibilidades, y debe investigar y probar para ver cuál es la mejor solución en su caso. – KBoek