dear all,
mohon info dan pencerahannya untuk proses penggunaan data grid untuk menampilkan database, jika menggunakan defaultview, data akan tampil pada datagrid tetapi harus diatur panjang kolomnya secara manual ( rasanya end user akan sebal jika harus menggeser cursor untuk melebarkan kolom
)
berikut ini sourcecodenya jika menggunakan defaultview :
// buat perintah sqlnya string queryPresensi = "select c.presensi_no as 'Nomor' , s.siswa_nama as 'Nama Siswa' ," +
"k.kelas_nama as 'Kelas',c.presensi_datang as 'Jam Datang',c.presensi_pulang as 'Jam Pulang' " +" from coba_presensi c, siswa s , kelas k " +
"where c.siswa_iccid = s.siswa_iccid and s.kelas_id = k.kelas_id group by c.presensi_no;";
// buat data adapter mysql MySql.Data.MySqlClient.MySqlDataAdapter myDtAdpPresensi = new MySql.Data.MySqlClient.MySqlDataAdapter(queryPresensi, myConn);
// buat data setnya DataSet myDtSetPresensi = new DataSet();
// isi dan tampilkan pada data grid myDtAdpPresensi.Fill(myDtSetPresensi, "coba_presensi");dgViewPresensi.DataSource = myDtSetPresensi.Tables["coba_presensi"].DefaultView;
nah, kemudian dilakukan pengaturan secara manual untuk mengatur lebar kolom, dimana sourcecodenya menjadi :
MySql.Data.MySqlClient.MySqlConnection myConnPb = new MySql.Data.MySqlClient.MySqlConnection();
myConnPb.ConnectionString =
"Persist Security Info=False;database=smps_isat;server=localhost;Connect Timeout=90;" +"user id=root; pwd=mysql911";
myConnPb.Open();
// buat perintah sqlnya string queryPresensi = "select c.presensi_no as 'Nomor' , s.siswa_nama as 'Nama Siswa' ," +
"k.kelas_nama as 'Kelas',c.presensi_datang as 'Jam Datang',c.presensi_pulang as 'Jam Pulang' " +", c.presensi_keterangan as 'Keterangan' " +
" from coba_presensi c, siswa s , kelas k " +"where c.siswa_iccid = s.siswa_iccid and s.kelas_id = k.kelas_id group by c.presensi_no;";
// mengeksekusi menggunakan mysql datareaderMySql.Data.MySqlClient.MySqlCommand cmdQueryPresensi = new MySql.Data.MySqlClient.MySqlCommand(queryPresensi);
cmdQueryPresensi.Connection = myConnPb;
// baca dengan menggunakan mysql data readerMySql.Data.MySqlClient.MySqlDataReader presensiReader;
presensiReader = cmdQueryPresensi.ExecuteReader();
while (presensiReader.Read())
{
// sekalian format kolom
// kolom nomor presensi DataGridViewColumn noPresensiCol = new DataGridViewColumn();
DataGridViewRow noPresensiRow = new DataGridViewRow();noPresensiCol.HeaderText = "Nomor";
noPresensiCol.DataPropertyName = presensiReader.GetString(0);
noPresensiCol.Width = 80;
// kolom nama siswa DataGridViewColumn namaSiswa = new DataGridViewColumn();
namaSiswa.DataPropertyName = presensiReader.GetString(1);
namaSiswa.HeaderText = "Nama Siswa";
namaSiswa.Width = 160;
// kolom nama kelas DataGridViewColumn namaKelas = new DataGridViewColumn();
namaKelas.DataPropertyName = presensiReader.GetString(2);
namaKelas.HeaderText = "Kelas";
namaKelas.Width = 140;
// kolom jam datangDataGridViewColumn jamDatang = new DataGridViewColumn();
jamDatang.DataPropertyName = presensiReader.GetString(3);
jamDatang.HeaderText = "Jam Datang";
jamDatang.Width = 85;
// kolom jam pulang DataGridViewColumn jamPulang = new DataGridViewColumn();
jamPulang.DataPropertyName = presensiReader.GetString(4);
jamPulang.HeaderText = "Jam Pulang";
jamPulang.Width = 85;
// kolom keterangan DataGridViewColumn keterangan = new DataGridViewColumn();
keterangan.DataPropertyName = presensiReader.GetString(5);
keterangan.HeaderText = "Keterangan";
keterangan.Width = 90;
// tambahkan kolom pada data grid
dgViewPresensi.Columns.Add(noPresensiCol);
dgViewPresensi.Columns.Add(namaSiswa);
dgViewPresensi.Columns.Add(namaKelas);
dgViewPresensi.Columns.Add(jamDatang);
dgViewPresensi.Columns.Add(jamPulang);
dgViewPresensi.Columns.Add(keterangan);
dgViewPresensi.DataSource = presensiReader;
}
presensiReader.Close();
temans, saat melakukan rebuild solution, kompiler tidak menemukan masalah, tetapi saat di eksekusi, nah .. database akan melebar kesamping, hmmm ... isi dari database itulah yang menjadi kolom
padahal hasil yang sy inginkan kepala kolom di buat sendiri, tetapi isi database menjadi rows.
memang keliatannya repot ya ....
mohon informasi dan pencerahan teman teman semua, untuk pengaturan kolom dan baris secara manual pada datagrid agar data dapat ditampilkan selayaknya kolom dan baris
.... atau mungkinkah kita melakukan pengaturan kolom dan baris saat menggunakan defaultview seperti contoh diatas ? agar end user tidak perlu menggeser kursor untuk melihat data yang tidak ditampilkan oleh kolom
p.s : telah melakukan googling, kebanyakan contohnya menggunakan default view
diucapkan terimakasih sebelum dan sesudahnya
salam,