我的C/S系统上 有一个窗体上 有一个combobox1控件,里面的值为“按姓名"  ”按编号“等,旁边有一个textBox1,,在下部有一个dataGridView1控件,想实现的功能是:当点击按姓名 选项时,在textBox1里输入员工姓名,点击button1就可以在dataGridView1里显示出查询的结果。
我写的button1的click事件是:
  private void button1_Click(object sender, EventArgs e)
        {
            if (this.comboBox1.SelectedItem.ToString() == "按姓名")
            {
                string name = textBox1.Text.Trim();
                string SqlString = string.Format("select * from EMPLOYINFO where EMPLOYNAME='{0}'", name);
                SqlDataAdapter da = new SqlDataAdapter(SqlString, Myconn);
                DataSet objDataSet = new DataSet();
                da.Fill(objDataSet, "EMPLOYINFO");
                this.dataGridView1.DataSource = objDataSet.Tables["EMPLOYINFO"];
                Myconn.Close();
            }            
        }
编译无错误,运行错误提示绿色字体附近有语法错误,这段代码在我另一个窗体就能正常执行,当然,我把对应这个窗体的项都改过来了  但是还是有这个错误,是什么原因呢?

解决方案 »

  1.   

    报什么错误?语法错误是没有的。不过在button1的click事件里你没有打开过数据库连接。Myconn.Open();
      

  2.   

    SqlDataAdapter可以不用打开连接的
    可能是你没有打开连接 就关闭连接报的错误
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace MIS
    {
        public partial class QueryEmp : Form
        {
            SqlConnection Myconn = new SqlConnection("Server=(local);Integrated Security=SSPI;Database=MIS");
            public QueryEmp()
            {
                InitializeComponent();
            }        private void QueryEmp_Load(object sender, EventArgs e)
            {        }        private void button1_Click(object sender, EventArgs e)
            {
                Myconn.Open();
                if (this.comboBox1.SelectedItem.ToString() == "按姓名")
                {
                    string name = textBox1.Text.Trim();
                    string SqlString = string.Format("select * from EMPLOYINFO where EMPLOYNAME='{0}'", name);
                    SqlDataAdapter da = new SqlDataAdapter(SqlString, Myconn);
                    DataSet objDataSet = new DataSet();
                    da.Fill(objDataSet, "EMPLOYINFO");
                    this.dataGridView1.DataSource = objDataSet.Tables["EMPLOYINFO"];
                    Myconn.Close();
                }            
            }
        }
    }
    这是本窗体的代码,请高手们帮着看看吧
      

  4.   

    检查下实例DATAADAPTER时的参数是否准确。
      

  5.   

    SqlDataAdapter的参数没有错误啊
    错误提示定位在这一行:da.Fill(objDataSet, "EMPLOYINFO"); 
      

  6.   

    你这行代码是正确的。那么就是da出错了。da出错,只可能是参数有问题。
      

  7.   

    Myconn检查下吧,
    设置一个断点在 SqlDataAdapter da = new SqlDataAdapter(SqlString, Myconn); 
      

  8.   

    QQ上给你看了。
    sql语句有问题,
    尽量用string.Format()
    你会喜欢这个东西的。+连接经常会出现一写引号的错误!