以下是从ASP.NET1.0的例子中的摘抄的代码,通过代码用数据适配器对数据库添加、删除、修改、查询。当运行修改命令时,出现,显示如下,应如何修改代码?“/showbaobiao”应用程序中的服务器错误。
--------------------------------------------------------------------------------第 1 行: '=' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '=' 附近有语法错误。源错误: 
行 142:        GridView1.DataSource = ds2;    //显示,绑定
行 143:        GridView1.DataBind();
行 144:        da2.Update(ds2, "Region");
行 145:
行 146:       //删除数据
源文件: d:\myweb\showbaobiao\Default2.aspx.cs    行: 144 protected void Button2_Click(object sender, EventArgs e)
    {
        SqlConnection conn2 = new SqlConnection("data source=(local);database=Northwind;user=sa; password=8888");   //创建连接对象
        SqlDataAdapter da2 = new SqlDataAdapter();
        //适配器对象的查询命令    
        SqlCommand cmdSel=new SqlCommand("select RegionID, RegionDescription from Region", conn2);  //创建DataAdapter(数据适配器)
        da2.SelectCommand = cmdSel;
         //适配器对象的更新命令
        SqlCommand cmdUpdate = new SqlCommand("update Region set RegionDescription =@RegionDescription where RegionID = @RegionID", conn2); 
        SqlParameter paramID = new SqlParameter("@RegionID",SqlDbType.Int);
        paramID.SourceColumn = "RegionID";  //数据值对应的字段
        paramID.SourceVersion = DataRowVersion.Original; //数据值将使用初始版本的数值
        cmdUpdate.Parameters.Add("@RegionDescription",SqlDbType.NChar,50,"RegionDescription");
        cmdUpdate.Parameters.Add(paramID);
        da2.UpdateCommand = cmdUpdate; //
        //适配器对象的添加命令
        SqlCommand cmdInsert = new SqlCommand("insert into Region(RegionDescription) values (@RegionDescription)", conn2);
        cmdInsert.Parameters.Add("@RegionID", SqlDbType.Int, 4, "RegionID");
        cmdInsert.Parameters.Add("@RegionDescription", SqlDbType.NChar, 50, "RegionDescription");
        da2.InsertCommand = cmdInsert;
        //适配器对象的删除命令
        SqlCommand cmdDel = new SqlCommand("delete * from Region where RegionID=@RegionID", conn2);
        SqlParameter paramDelID = new SqlParameter("@RegionID", SqlDbType.Int);
        paramDelID.SourceColumn = "RegionID";
        paramDelID.SourceVersion = DataRowVersion.Original;
        cmdDel.Parameters.Add(paramDelID);
        da2.DeleteCommand = cmdDel;        DataSet ds2 = new DataSet();     //创建DataSet(数据集)
        da2.Fill(ds2,"Region");  //使用数据适配器填充数据集
        GridView1.DataSource = ds2;    //显示,绑定
        //GridView1.DataMember = "mybaobiao";
        GridView1.DataBind();        //添加数据
        DataRow addrow = ds2.Tables[0].NewRow();
        addrow[1] = "碧海湾8";
        ds2.Tables[0].Rows.Add(addrow);
        da2.Update(ds2, "Region");        //修改数据
        DataRow editrow = ds2.Tables["Region"].Rows[0];
        //editrow.BeginEdit();
        editrow["RegionDescription"] = "北京9北京9北京9";
        //editrow.EndEdit();
        GridView1.DataSource = ds2;    //显示,绑定
        GridView1.DataBind();
        da2.Update(ds2, "Region");       //删除数据
        DataRow editrow1 = ds2.Tables["Region"].Rows[3];
        editrow1.Delete();
        GridView1.DataSource = ds2;    //显示,绑定
        GridView1.DataBind();
        //da2.Update(ds2,"Region")
    }

解决方案 »

  1.   

    GridView1.DataSource = ds2.Tables["Region"];
      

  2.   

    不是这个问题,当运行到  da2.Update(ds2, "Region"); 时才出错。我想应该是以下的代码有问题,但不知具体错在哪里?//适配器对象的更新命令
            SqlCommand cmdUpdate = new SqlCommand("update Region set RegionDescription =@RegionDescription where RegionID = @RegionID", conn2); 
            SqlParameter paramID = new SqlParameter("@RegionID",SqlDbType.Int);
            paramID.SourceColumn = "RegionID";  //数据值对应的字段
            paramID.SourceVersion = DataRowVersion.Original; //数据值将使用初始版本的数值
            cmdUpdate.Parameters.Add("@RegionDescription",SqlDbType.NChar,50,"RegionDescription");
            cmdUpdate.Parameters.Add(paramID);
            da2.UpdateCommand = cmdUpdate; //
    “/showbaobiao”应用程序中的服务器错误。
    --------------------------------------------------------------------------------第 1 行: '=' 附近有语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '=' 附近有语法错误。源错误:
      

  3.   

    晕了,SQL语句有错误.
    exec sp_executesql N'update Region set RegionDescription =@RegionDescription where RegionID = @RegionID', N'@RegionDescription nchar(50),@RegionID int', @RegionDescription = N'北京9北京9北京9                                         ', @RegionID = 1
    你的等号是全角的,改下就OK
      

  4.   

    谢谢!果然是这个问题!文文 真是精明眼啊!还有一个问题,现在ASP.NET 2.0中,如何通过代码操作数据库的话,还是与ASP.NET 1.0 一样的操作吗??
      

  5.   

    SQL语句执行你可以用SQL事件探查器跟下,如果是SQL语句问题会很快发现.
    ADO.NET 2.0都没怎么用过,公司培训了下,有些特性针对SQL SERVER 2005才有用的!!!!!
    我现在还是在用VS2003.
      

  6.   

    为何以下的删除语句在运行时出现:System.Data.SqlClient.SqlException: 第 1 行: '*' 附近有语法错误。SqlCommand cmdDel = new SqlCommand("delete * from baobiao where ID=@ID",conn1);……//删除数据
                DataRow editrow1 = ds1.Tables["baobiao"].Rows[1];
                //editrow1[0] = 1;
                editrow1.Delete();
                GridView1.DataSource = ds1;    //显示,绑定
                GridView1.DataBind();
                da1.Update(ds1, "baobiao");
      

  7.   

    GridView1.DataSource   =   ds2; 有错误应该是GridView1.DataSource   = ds2. Tables[0].DefaultView;