namespace WindowsFormsApplication1
{
    class Class1
    {
        public void fun()
        {
            MySQLConnection conn = new MySQLConnection(new MySQLConnectionString("test", "root", "test123").AsString);
            conn.Open();            string sql = "select * from stu ";
            MySQLDataAdapter da = new MySQLDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            da.Fill(ds);            DataTable tb = new DataTable();
            tb = ds.Tables[0];
            new Form1().dataGridView1.DataSource = tb;
            conn.Close();
            
        }
    }
   
}namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            Class1 c = new Class1();
            
            c.fun();
        }    }
}这里按钮的单击事件调用的方法写死  方法内容是填充别的窗体的datagridview  发现无法填充 求帮解决问题

解决方案 »

  1.   

            public void fun(Form1 form1)
            {
                MySQLConnection conn = new MySQLConnection(new MySQLConnectionString("test", "root", "test123").AsString);
                conn.Open();            string sql = "select * from stu ";
                MySQLDataAdapter da = new MySQLDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);            DataTable tb = new DataTable();
                tb = ds.Tables[0];
                form1.dataGridView1.DataSource = tb;
                conn.Close();
                
            }
      

  2.   

    不是填充的问题吧
    是你又 new 了一个 Form1 
    但最後 form1 又没 Show 出来
    所以看不到结果吧~
      

  3.   

    new Form1().dataGridView1.DataSource = tb;
    这个new做何解?  Form1()后面有括号的啊?
    dataGridView1.Bind(); //不确定是不是这个方法,好久没编码了
      

  4.   

    搂住class Class1
        {
            public void fun(DataGridView gr)
            {
                MySQLConnection conn = new MySQLConnection(new MySQLConnectionString("test", "root", "test123").AsString);
                conn.Open();            string sql = "select * from stu ";
                MySQLDataAdapter da = new MySQLDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);            DataTable tb = new DataTable();
                tb = ds.Tables[0];
                 gr= tb.DefaultView;
                conn.Close();
                
            }
        }
    在有datagridview的窗体调用,
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                Class1 c = new Class1();
                
                c.fun(dataGridView1);
            }    }
    }
      

  5.   

     new Form1().dataGridView1.DataSource = tb;
    这样写对么,你需要确认一下。
      

  6.   


    class Class1
        {
            public void fun(DataGridView gr)
            {
                MySQLConnection conn = new MySQLConnection(new MySQLConnectionString("test", "root", "test123").AsString);
                conn.Open();            string sql = "select * from stu ";
                MySQLDataAdapter da = new MySQLDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);            DataTable tb = new DataTable();
                tb = ds.Tables[0];
                 gr.DataSource= tb.DefaultView;
                conn.Close();
                
            }
        }
    在有datagridview的窗体调用,
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                Class1 c = new Class1();
                
                c.fun(dataGridView1);
            }    }
    }
      

  7.   

    记得在类里引用命名空间using System.Windows.Forms;要不找不到DataGridView的嘎哈和
      

  8.   

    那你把窗体实例保存在局部变量里面:static class GlobalData
    {
        public static Form1 form1;
    }在Form1的创建代码,比如Program.cs里面:
    Form1 f = new Form1();
    GlobalData.form1 = f;
    Application.Run(f);在你的函数调用里面:
    GlobalData.form1.dataGridView1.DataSource = tb;
      

  9.   

    本帖最后由 caozhy 于 2011-10-10 17:49:15 编辑