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 j062
{
    public partial class QueryForm : Form
    {
        public QueryForm()
        {
            InitializeComponent();
        }        private void QueryForm_Load(object sender, EventArgs e)
        {
            comboBox1.SelectedIndex = 0;        }        private void button2_Click(object sender, EventArgs e)
        {
            Close();
          
        }        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox2.Text.Length > 0)
            {
                try
                {
                    Int32.Parse(textBox2.Text.Trim());
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    textBox2.Focus();
                    return;
                }
            }
            String sqlstring = (@"select Student.学号,姓名,年龄,Course.课程号,课程名,SC.成绩 
                                  from Student,Course,SC
                                  where (Student.学号=SC.学号) and 
                                  (Course.课程号=SC.课程号) and 
                             姓名 like '%" + textBox1.Text.Trim().ToString() + "%'and");
            switch (comboBox1.SelectedIndex)
            {
                case 0: { sqlstring += "SC.成绩='" + textBox2.Text.Trim() + "'"; break; }
                case 1: { sqlstring += "SC.成绩!='" + textBox2.Text.Trim() + "'"; break;}
                case 2: { sqlstring += "SC.成绩>'" + textBox2.Text.Trim() + "'"; break;}
                case 3: { sqlstring += "SC.成绩>='" + textBox2.Text.Trim() + "'"; break;}
                case 4: {sqlstring += "SC.成绩<'" + textBox2.Text.Trim() + "'"; break; }
                case 5: { sqlstring += "SC.成绩<='" + textBox2.Text.Trim() + "'"; break;}
            }
            sqlstring += "order by Student.学号,SC.成绩";
            string connectionstring = (@"Data Source=3967A13981A4436;
                                         Persist Security Info=false;
                                         Integrated Security=SSPI;
                                         Initial Catalog=学生信息管理系统;
                                         User ID=sa;
                                         Password=88105421;");            SqlConnection mysqlconnection=new SqlConnection(connectionstring);
            try
            {
                mysqlconnection.Open();
                            }
            catch (Exception ex)
            {MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            SqlCommand mysqlcommand=new SqlCommand(sqlstring,mysqlconnection);
            SqlDataAdapter myDataAdapter=new SqlDataAdapter(mysqlcommand);
            DataSet myDataSet=new DataSet();
            myDataAdapter.Fill(myDataSet);
            dataGridView1.DataSource=myDataSet.Tables[0].DefaultView;
        }
    }
}
可以生成对话框,可是在按确认按钮时,出现下面的错误:
未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 System.Data.dll 中。其他信息: 第 1 行: ',' 附近有语法错误。然后箭头指向这行 myDataAdapter.Fill(myDataSet);
什么原因啊?

解决方案 »

  1.   

    我知道哪里错了,我的.net是2005的不能和sql server 2000建立连接。
      

  2.   


      String sqlstring = (@"select Student.学号,姓名,年龄,Course.课程号,课程名,SC.成绩 
    红色标记的字段前,没有对应的表名称
    应该为:Student.姓名,Student.年龄,...
      

  3.   

    String sqlstring = (@"select Student.学号,姓名,年龄,Course.课程号,课程名,SC.成绩 
      

  4.   

    sql语句出错了!
    设置断点,检查一下SQL语句。
      
      

  5.   

    sql语句错误 输出sql语句看看 缺少东西了注意空格什么的,如" and "
    String sqlstring = (@"select Student.学号,姓名,年龄,Course.课程号,课程名,SC.成绩 
                                      from Student,Course,SC 
                                      where (Student.学号=SC.学号) and 
                                      (Course.课程号=SC.课程号) and 
                                姓名 like '%" + textBox1.Text.Trim().ToString() + "%' and "); 
      

  6.   

    你先把sql语句在查询管理器里执行吧,正确了再放入代码中
      

  7.   

    你的逗号是全角(,)的,所以出错。
    用(,)
        String sqlstring = (@"select Student.学号,姓名,年龄,Course.课程号,课程名,SC.成绩
                                      from Student,Course,SC
                                      where (Student.学号=SC.学号) and
                                      (Course.课程号=SC.课程号) and
                                姓名 like '%" + textBox1.Text.Trim().ToString() + "%'and"); 
      

  8.   

    .net 2005 可以连sql 2000,2005,2008...mysql,db2.....都可以
      

  9.   

    第 1 行: ',' 附近有语法错误才看到这个错误,是全角的逗号,改成半角试试
    ToString() + "%'and"); 
    and连接符左右要有空格,最好在查询分析器中执行一下 看都报什么错,
      

  10.   

    该过的SQL 语言。没有错误后粘贴进去了,少了第 1 行: ',' 附近有语法错误 。可是还是这样的:
    未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。其他信息: 系统错误。
      

  11.   

    用sqlserver里面的探查器跟踪一下:
    看看语句有没有执行!