2008-09-20 16 views
0

데이터 테이블에서 DataGridview를 채 웁니다. 응용 프로그램이 실행 중일 때 DataGridview에서 어떻게 읽습니까?Dataagridview 읽기

+0

달성하려는 목표에 대해 자세히 설명해 주실 수 있습니까? – Chris

+0

데이터 테이블에서 datagridview를 채 웠습니다. 응용 프로그램이 실행 중일 때 셀을 변경하면 변경된 DataGridview 전체를 읽고 파일에 쓰고 싶습니다. 나는 정보에 접근하는 적절한 방법에 붙어있다. –

+0

태그를 다시 지정하십시오. 이것은 C# 관련 질문이 아닙니다. 대신 ".net"태그. –

답변

2

어떻게 채웠습니까? DataSource 뭔가 BindlingList 같은 유용한 무엇입니까? 뭔가 같이 다음의 경우 :

BindingSource bindingSource = this.dataGridView1.DataSource as BindingSource; 
//substitute your business object type for T 
T entity = bindingSource.Current as T; 

당신에게 행에 바인딩 된 개체를 얻을 것입니다.

그렇지 않으면 항상 datagridview.Columns [N] .Cells [N] .Value가 있지만, 정말이 데이터 소스

편집의 개체를 사용하여보고 싶은데 : 아 ... 데이터 테이블을 ... righto :

var table = dataGridView1.DataSource as DataTable; 

foreach(DataRow row in table.Rows) 
{ 
    foreach(DataColumn column in table.Columns) 
    { 
     Console.WriteLine(row[column]); 
    } 
} 
1

DataGridview를 반복하고 각 셀을 검색 할 수 있습니다. 예 : here

0
namespace WindowsFormsApplication2 
{ 
    public partial class Form1 : Form 
    { 
     public static DataTable objDataTable = new DataTable("UpdateAddress"); 

     public Form1() 
     { 
      InitializeComponent(); 

     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Stream myStream = null; 
      OpenFileDialog openFileDialog1 = new OpenFileDialog(); 

      openFileDialog1.InitialDirectory = "c:\\"; 
      openFileDialog1.Filter = "csv files (*.csv)|*.txt|All files (*.*)|*.*"; 
      openFileDialog1.FilterIndex = 2; 
      openFileDialog1.RestoreDirectory = true; 

      if (openFileDialog1.ShowDialog() == DialogResult.OK) 
      { 
       try 
       { 
        if ((myStream = openFileDialog1.OpenFile()) != null) 
        { 
         string fileName = openFileDialog1.FileName; 

         List<string> dataFile = new List<string>(); 
         dataFile = ReadList(fileName); 
         foreach (string item in dataFile) 
         { 
          string[] temp = item.Split(','); 
          DataRow objDR = objDataTable.NewRow(); 
          objDR["EmployeeID"] = temp[0].ToString(); 
          objDR["Street"] = temp[1].ToString(); 
          objDR["POBox"] = temp[2].ToString(); 
          objDR["City"] = temp[3].ToString(); 
          objDR["State"] = temp[4].ToString(); 
          objDR["Zip"] = temp[5].ToString(); 
          objDR["Country"] = temp[6].ToString(); 
          objDataTable.Rows.Add(objDR); 

         } 
        } 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
       } 
      } 
     } 

     public static List<string> ReadList(string filename) 
     { 
      List<string> fileData = new List<string>(); 
      StreamReader sr = new StreamReader(filename); 
      while (!sr.EndOfStream) 
       fileData.Add(sr.ReadLine()); 
      return fileData; 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      objDataTable.Columns.Add("EmployeeID", typeof(int)); 
      objDataTable.Columns.Add("Street", typeof(string)); 
      objDataTable.Columns.Add("POBox", typeof(string)); 
      objDataTable.Columns.Add("City", typeof(string)); 
      objDataTable.Columns.Add("State", typeof(string)); 
      objDataTable.Columns.Add("Zip", typeof(string)); 
      objDataTable.Columns.Add("Country", typeof(string)); 
      objDataTable.Columns.Add("Status", typeof(string)); 

      dataGridView1.DataSource = objDataTable; 
      dataGridView1.Refresh(); 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      // Displays a SaveFileDialog so the user can save the backup of AD address before the update 
      // assigned to Button2. 
      SaveFileDialog saveFileDialog1 = new SaveFileDialog(); 
      saveFileDialog1.Filter = "BAK Files|*.BAK"; 
      saveFileDialog1.Title = "Save AD Backup"; 
      saveFileDialog1.ShowDialog(); 

      if (saveFileDialog1.FileName != "") 
      { 
       TextWriter fileOut = new StreamWriter(saveFileDialog1.FileName); 
       //This is where I want read from the datagridview the EmployeeID column and use it in my BackupAddress method. 
      } 

     } 
+1

대답으로 게시하는 대신 질문을 편집하는 것이 더 좋았을 것입니다. –