form里拖放一个DataGridView和一个BindingSource,编译没有错误
代码如下:
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.Data.SqlClient;namespace 快餐店win代码
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            string conn_string = "Data Source=yh-20120602uzvz\\SQLNEW;Initial Catalog=FastFood;Integrated Security=True";//连接字符串
            string sql = "Select CustomerID,userName,Password,Email form Customer";//查询select语句
            SqlConnection conn = new SqlConnection(conn_string);//创建连接对象
            SqlCommand cmd = new SqlCommand();//创建执行SQL命名形象            conn.Open();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sql;
            SqlDataReader customer1 = cmd.ExecuteReader();   //执行查询的select语句,并产生结果集
            bindingSource1.DataSource = customer1;//把结果与bindingsource控件相结合并绑定
            dataGridView1.DataSource = bindingSource1;//把dataGridView控件与bindingSource相结合并绑定
        }
    }
}

解决方案 »

  1.   

    至少我看到的sql语句是错误的,应该是from ,而不是form
    Select CustomerID,userName,Password,Email from Customer
      

  2.   

    private void Form1_Load(object sender, EventArgs e)
    是自己敲的,不是自动生成的吧
      

  3.   

      cmd.Connection = conn;
    这段去掉看看?
      

  4.   

    你能把数据库连接关掉么?
    conn.Close();
      

  5.   

    这个你应该重写protected virtual void OnLoad(EventArgs e) 个函数  你写的private void Form1_Load(object sender, EventArgs e)可能有问题。这样导致你的程序没运行到那里。你可以设断点看看
      

  6.   

    运行结果却实和在private void Form1_Load(object sender, EventArgs e)处设置断点一模一样,但修改后还是没啥变化额、、,下面是修改后的代码:
    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.Data.SqlClient;namespace 快餐店win代码
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            protected virtual void On_Load( EventArgs e)
            {
                string conn_string = "Data Source=yh-20120602uzvz\\SQLNEW;Initial Catalog=FastFood;Integrated Security=True";//连接字符串
                string sql = "Select CustomerID,userName,Password,Email from Customer";//查询select语句
                SqlConnection conn = new SqlConnection(conn_string);//创建连接对象
                SqlCommand cmd = new SqlCommand();//创建执行SQL命名形象            conn.Open();
                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sql;
                SqlDataReader customer1 = cmd.ExecuteReader();   //执行查询的select语句,并产生结果集
                bindingSource1.DataSource = customer1;//把结果与bindingsource控件相结合并绑定
                dataGridView1.DataSource = bindingSource1;//把dataGridView控件与bindingSource相结合并绑定
                conn.Close();
            }        
        }
    }
      

  7.   

    当然不一样
    在构造函数里加上this.Load += Form1_Load;就行了
    自动生成的代码会在设计器生成的文件里自动加上,你自己敲的就得自己加
    这就是区别还有
    重载OnLoad也不是你那样写的
      

  8.   

    改正后,依旧不行,以后慢慢了解下DataGridView和一个BindingSource的使用