using System;
using System.Data.SqlClient;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace WebApplication2
{
/// <summary>
/// Find 的摘要说明。
/// </summary>
public class Find : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList GroupList;
protected System.Web.UI.HtmlControls.HtmlInputText Name;
protected System.Web.UI.WebControls.DataGrid UserList;
protected System.Web.UI.WebControls.Button Find_Btn;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//dropdownlist 与数据库绑定
SqlConnection Conn=new SqlConnection("server=localhost;uid=sa;password=;database=edu");
SqlCommand myComm=new SqlCommand("select * from [Group]",Conn);
Conn.Open();
SqlDataReader reader = myComm.ExecuteReader();
GroupList.DataSource = reader;
GroupList.DataValueField = "GID";
GroupList.DataTextField = "GName";
    GroupList.DataBind();
reader.Close();
Conn.Close();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
                   //进行查询
private void InitializeComponent()
{    
this.Find_Btn.Click += new System.EventHandler(this.Find_Btn_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Find_Btn_Click(object sender, System.EventArgs e)
{
SqlConnection Conn=new SqlConnection("server=localhost;uid=sa;password=;database=edu");
string SelCmd="select [Group].GName,[User].Name,[User].Sex,[User].Address,[User].Postcode,[User].Telephone,[User].Mobile,[User].Email from [User],[Group] where [Group].GID=[User].GID"; 
if(GroupList.SelectedItem.Value!="")
{
SelCmd+="and [Group].GID="+GroupList.SelectedItem.Value;
if(Name.Value!="")SelCmd+="and [User].Name like"  + Name.Value;//'%+"%'" 
}
else
{
if(Name.Value!="")SelCmd+="and [User].Name like "+Name.Value;//'%+"%'"
} SqlDataAdapter myComm=new SqlDataAdapter(SelCmd,Conn); DataSet ds=new DataSet();
myComm.Fill(ds,"[User]"); UserList.DataSource=ds.Tables["[User]"].DefaultView;
UserList.DataBind();
}


}
}
这个程序是通讯簿的查找程序,前台的界面可以运行
输入GroupList的组名和Name中的姓名后
就与数据库联接不到 并且显示错误如下:
第 1 行: 'Group' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: 'Group' 附近有语法错误。源错误: 
行 78: 
行 79:  DataSet ds=new DataSet();
行 80:  myComm.Fill(ds,"[User]");//次行报错!
行 81: 
行 82:  UserList.DataSource=ds.Tables["[User]"].DefaultView;
 
为什么显示第一行的Group报错 我的Group应该不与sql的冲突吧?
请指点一下 谢谢!

解决方案 »

  1.   

    你把你的sql打出来,看看有没有什么问题。
      

  2.   

    对了你的sql写成:"select Group.GName,User.Name,User.Sex,User.Address,User.Postcode,User.Telephone,User.Mobile
     from Group ,User 
    不行么?好别扭。
      

  3.   

    你的SQL语句这样写 :select  a.gname,b.name,b.sex.b.address,b.postcode,b.teltphone,b.mobile from group a  inner join user b on a.gid=b.gid
      

  4.   

    是一样的错误,不知道是不是因为数据库的定义问题?数据局描述:
    create table User(
     UID smallint not null,
     GID smallint not null,
     Name varchar(50) not null,
     Sex varchar(10),
     Address varchar(50),
     PostCode varchar(10),
     Telephone varchar(20),
     Moblie varchar(20),
     Email varchar(30))