Witam. Stworzyłem trochę sam,a trochę z tutorialem taką prostą apke służącą do komunikacji z bazą i pobierania z niej zawartości tabeli ( na razie jednej zaszytej w kodzie ) . Jednak kod działa tylko dla tabeli o 7 kolumnach , dla każdej innej tabeli muszę robić zmianę w kodzie. Mogę w jakiś sposób zrobić
tak ,żeby program sam dopasowywał się do ilości kolumn w tabeli oraz dodatkowo pobierał ich nazwy i sam ustawiał je jako nazwy kolumn w listView ??? Zaznaczam ,ze od około miesiąca zajmuję się c# i takie rzeczy sprawiają mi jeszcze problem .
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace SampleListview
{
public partial class Form1 : Form
{
string stab = "Select * from Pracownicy";
public Form1()
{
InitializeComponent();
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{ }
private void button1_Click(object sender, EventArgs e)
{
ADODB.Recordset rs = new ADODB.Recordset();
ADODB.Connection con = new ADODB.Connection();
con.ConnectionString = ConnectionClass.GetConnection();
con.Open();
rs.Open(stab, con, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockBatchOptimistic);
if (rs.EOF == false)
{
listView1.Items.Clear();
do
{
** Sztywno ustawione dla tabeli o 7 kolumnach indeks od 0 do 6 **
listView1.Items.Add(rs.Fields[0].Value.ToString());
listView1.Items[listView1.Items.Count - 1].SubItems.Add(rs.Fields[1].Value.ToString());
listView1.Items[listView1.Items.Count - 1].SubItems.Add(rs.Fields[2].Value.ToString());
listView1.Items[listView1.Items.Count - 1].SubItems.Add(rs.Fields[3].Value.ToString());
listView1.Items[listView1.Items.Count - 1].SubItems.Add(rs.Fields[4].Value.ToString());
listView1.Items[listView1.Items.Count - 1].SubItems.Add(rs.Fields[5].Value.ToString());
listView1.Items[listView1.Items.Count - 1].SubItems.Add(rs.Fields[6].Value.ToString());
rs.MoveNext();
} while (!rs.EOF);
{
rs.Close();
con.Close();
}
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
///wybór tabeli
}
}
}