Arkadaşlar 2 saatir uğraşıyorum istenilen satır sütunu alamıyorum. Örneğin Sıra ile satır sütunları çekmek istiyorum olmuyor;
marka[1] = dataGridView1.Rows[1].Cells["Marka"].Value.ToString();
Diyorum "Nesne başvurusu bir nesnenin örneğine ayarlanmadı." diyor.
Yukarıda yazdığım kod Marka sütunun 1. satırını alması gerekmezmi. İnternette hep seçili satırın içeriğini almakla ilgili örnekler yapılmış. Ben otomatik olarak almak istiyorum.
marka[i] = dataGridView1["Marka", 2].Value.ToString();
Kullanıncada Dizin aralık dışındaydı. Negatif bir değer olmamalı ve koleksiyonun boyutundan daha küçük olmalıdır.
C# üzerinde tam olarak denemedim ama vb ve Delphi'de bu grid öğeleri tek yönlü diye biliyorum... Yani sadece gösteriyor... Hücreden geri okunamıyor diye biliyorum..
O yüzden oluşturduğun grid öğesi üzerinde işlem yapmak için bir grid ile aynı boyutta matris oluşturup her grid güncellemesinde bu matriside güncelliyorum. Okumam gerektiğinde de bu matrisi okuyorum...
Hocam intenette seçili satır ve sütunu okumak için bvirsürü örnek var "tıklanılan hücreyi" almak için. Fakat matris gibi satır sütun numarası vererek alamıyorum.
grid e nereden bilgi giriyor/gönderiyorsun ?
Exccelden hocam tablyu grid viewin içerisinde görüyorum.
excel den direk nasıl alıyorsun. Demem O ki, dataset, yada datatable gibi bir nesneden atıyorsundur diye düşünüyorum,
mesaj birleştirme:: 12 Mayıs 2013, 14:29:15
Label1.Text = DataGridView1.Rows(1).Cells(0).Value.ToString
ile çalıştı. Ama Vb.net ile denedim. şimdi birde c# ile deneyeyim
mesaj birleştirme:: 12 Mayıs 2013, 14:34:40
label1.Text = dataGridView1.Rows[0].Cells[1].Value.ToString();
buda çalışıyor.
mesaj birleştirme:: 12 Mayıs 2013, 14:44:56
string colnum;
colnum = dataGridView1.Columns[1].Name;
label1.Text = dataGridView1.Rows[0].Cells[colnum].Value.ToString();
Teşekürler Muhittin hocam en az 10 defadır hızır gibi yetişiyorsunuz.
Teşekkür ederim.
Hocam Excel den bilgi almak Programı hantallaştırmıyor mu ?
ne iş için kullanıyorsun ?
Hocam depodaki malzemeleri etiketleyeceğiz, depodaki malzemelerde hali hazırda excel ile yazılmış. Otomatik etiket oluşturan bir yazılım yazdım sayenizde :D
İşinizi Görüyorsa Sorun Yok.
Ama Ben Olsam "Küçük Boyutlu Bir Kayıt için" veritabanı mantığını kullanırdım.
Bu iş İçin Access,C# bence güzel olurdu.
giriş,çıkış, adet sorgulama gibi özellikler doğrudan oluşurdu.
Şimdi Bir Soum Daha Var. EXCEL den bilgiyi dataset e alıyorsunuz değil mi, oradan grid e aktarıyorsunuz.
Data Set e ne ile excel e bağladınız ?
Data gridviewe excelli almak için yaptığım tek şey bu;
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel_yolu + "; Extended Properties=Excel 12.0");
baglanti.Open();
string sorgu = "select * from [Sayfa1$] ";
OleDbDataAdapter data_adaptor = new OleDbDataAdapter(sorgu, baglanti);
baglanti.Close();
DataTable dt = new DataTable();
data_adaptor.Fill(dt);
dataGridView1.DataSource = dt;
Excel'e aktarmak için olanıda ben vereyim o zaman. Zamanında çok aramıştım :)
private void Kaydet_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
for (i = 0; i <= Ekran.RowCount - 1; i++)
{
for (j = 0; j <= Ekran.ColumnCount - 1; j++)
{
DataGridViewCell cell = Ekran[j, i];
xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;
}
}
xlWorkBook.SaveAs("C:\\Ram_islem.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
Ekran => dataGridView'dir