2012-06-13 34 views
0

我一直在使用斷開類創建的數據表有困難,還創建了數據集,XML文件,現在我想加載表中的網格。我寫了我所有的代碼下Program.cs中,但是當我試圖從形式加載方法訪問數據集對象,該數據集對象不被認可。代碼在這裏:與數據集對象

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Windows.Forms; 
using System.Data; 
using System.IO; 

namespace DisconnectedClassDemo 
{ 
    public class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 


     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 



      DataTable studentInfo = new DataTable("studentinfo"); 

      DataColumn StudentID = new DataColumn("studentID"); 
      StudentID.DataType = typeof(int); 
      StudentID.Caption="StudentID"; 
      StudentID.AutoIncrement = true; 
      StudentID.AutoIncrementSeed = 1; 
      StudentID.AutoIncrementStep = 1; 


      DataColumn Name = new DataColumn("StudentName", typeof(string)); 
      Name.MaxLength = 50; 
      Name.AllowDBNull = false; 
      Name.Caption = "StudentName"; 

      DataColumn Roll = new DataColumn("StudentRoll", typeof(int)); 
      Roll.Caption = "StudnetRoll"; 

      studentInfo.Columns.Add(StudentID); 
      studentInfo.Columns.Add(Name); 
      studentInfo.Columns.Add(Roll); 

      studentInfo.PrimaryKey = new DataColumn[] { StudentID }; 

      //DataRow rowobj = studentInfo.NewRow(); 
      //rowobj["studentName"] = "Badhon"; 
      //rowobj["studentRoll"] = "004"; 

      //studentInfo.Rows.Add(rowobj); 


      DataSet ds = new DataSet("dataset"); 
      ds.Tables.Add(studentInfo); 

      ds.WriteXmlSchema("D:\\Student.xsd"); 
      ds.WriteXml("D:\\student.xml"); 



      ds.ReadXmlSchema("d:\\student.xsd"); 
      ds.ReadXml("D:\\student.xml"); 







     } 
    } 



} 


using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.IO; 

namespace DisconnectedClassDemo 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      //dataGridView1.DataSource= 
      //dataGridView1.DataMember= 

     } 




    } 
} 

回答

0

爲什麼要將數據集寫入文件系統?你不是想創建一個內存數據集並訪問數據集嗎?嘗試在表單本身上聲明數據集。

試試這個:

  DataTable studentInfo = new DataTable("studentinfo"); 

     DataColumn StudentID = new DataColumn("studentID"); 
     StudentID.DataType = typeof(int); 
     StudentID.Caption = "StudentID"; 
     StudentID.AutoIncrement = true; 
     StudentID.AutoIncrementSeed = 1; 
     StudentID.AutoIncrementStep = 1; 


     DataColumn Name = new DataColumn("StudentName", typeof(string)); 
     Name.MaxLength = 50; 
     Name.AllowDBNull = false; 
     Name.Caption = "StudentName"; 

     DataColumn Roll = new DataColumn("StudentRoll", typeof(int)); 
     Roll.Caption = "StudnetRoll"; 

     studentInfo.Columns.Add(StudentID); 
     studentInfo.Columns.Add(Name); 
     studentInfo.Columns.Add(Roll); 

     studentInfo.PrimaryKey = new DataColumn[] { StudentID }; 

     DataSet ds = new DataSet("dataset"); 
     ds.Tables.Add(studentInfo); 

     var rw = ds.Tables[0].NewRow(); 

     rw["StudentName"] = "Badhon"; 
     rw["StudentRoll"] = 004; 

     ds.Tables[0].Rows.Add(rw); 

     MessageBox.Show(ds.Tables[0].Rows.Count.ToString()); 

     dataGridView1.DataSource = ds.Tables[0]; 
+0

好的...我在表單加載方法中移動了我的代碼。但仍然沒有在表格中顯示。我將網格的數據源指定爲數據集對象,但仍然沒有結果。還有什麼我失蹤?感謝你的幫助。 –

+0

再次感謝...現在問題已解決。告訴我一兩件事,是有可能與內存中的數據的基礎工作,而從一個文本框來填充數據表獲取用戶輸入的?我試過了,沒有顯示錯誤,但也沒有顯示該列中的數據? –

+0

現在一切都似乎是工作,感謝一切。 –

0

您的數據集

Application.Run(new Form1()); 

移動這條線下創建數據集的前下方創建窗體。

0

像普里特僧伽說,你創建和運行數據集之前的形式。

此外,該數據集是你的主要方法內部的局部變量,以便窗體類具有毫不知情。嘗試在表單中創建數據集或將其作爲參數傳遞給構造函數:

public class Form1(Dataset ds) : Form 
... 


... 

Application.Run(new Form1(ds));