SqlDataAdapter sda = new SqlDataAdapter(strsql, connectionString);
            DataSet ds = new DataSet();
            sda.SelectCommand.Parameters.Clear();
            sda.Fill(ds);
            data.DataSource = ds.Tables[0];
            data.DataBind();

解决方案 »

  1.   

    断点看最终执行的sql语句是什么,执行的sql语句有错误
      

  2.   

    strsql语句错了,断点,取得strsql的内容,在Sql server management studio里执行,看看有什么错误。
      

  3.   

    跟踪,打断点,看strsql字符串的内容。
      

  4.   

    这是后台完整的代码using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SqlClient;
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {            DataList1.DataBind();
                string Id = Request["SpecialProduct_ID"];
                Session["SpecialProduct_ID"] = Id;
                string strSql = "Select * From Special_Message where SpecialProduct_ID=" + Id;
                DAL.DataAccess.DatalistBang(strSql, DataList1);
            }
        }
        protected void LinkButton2_Click(object sender, EventArgs e)
        {    }
        protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {    }    protected void DataList1_ItemCommand(object Sender, DataListCommandEventArgs e)
        {
            string price = ((Label)e.Item.FindControl("LabelSpecialProduct_Price")).Text;
            string count = ((TextBox)e.Item.FindControl("TextBox2")).Text;
            string name = ((Label)e.Item.FindControl("LabelSpecialProduct_Name")).Text;
            string stock = ((Label)e.Item.FindControl("LabelSpecialProduct_Quantity")).Text;
            if (int.Parse(stock) >= int.Parse(count))//确定库存量
            {
                if (e.CommandName == "Buy")
                {
                    //if (Session["username"] != null) //向总账单和分账单中分别插入相关信息,其中第二个sql语句是获取当次操作的订单号(方便向其订单号下插入更多的商品信息)
                    //{                string strSql = string.Format("insert into Special_Order (SpecialProduct_BuyQuantity,SpecialProduct_TotalPrice,SpecialOrder_ID,SpecialProduct_Time,username,SpeciaProduct_ID) values ({0},{1},2,'{2}','{3}',1);", count, float.Parse(price) * int.Parse(count), DateTime.Now.ToString(), Session["Id"]);
                        DAL.DataAccess.ExecuteNo(strSql);
                        string strSql1 = string.Format("select top(1) Id  from Special_Order where id={0} order by SpecialProduct_Time desc ", Session["SpecialOrder_ID"]);
                        DataTable dt = DAL.DataAccess.Execute(strSql1);
                        int Orderid = int.Parse(dt.Rows[0][0].ToString());
                        string strSql2 = string.Format("Insert Into SCart (SoC_ID,SoCNum,OrderId) Values({0},{1},{2})", Session["SpeciaProduct_ID"], count, Orderid);                    DAL.DataAccess.ExecuteNo(strSql2);                    Response.Redirect("~/Special/HoldOrders.aspx");
                    //}
                    //else
                    //{
                    //    Response.Redirect("~/Index.aspx");
                    //}
                }
            }
            else
            {
                ((Label)e.Item.FindControl("Label7")).Text = "*库存量不足!请重新填写购买件数!*";
                ((Label)e.Item.FindControl("Label7")).Visible = true;
            }        "window.open('showdetail.aspx?str=" + str + "');", true);
        }
        protected void LinkButton2_Click1(object sender, EventArgs e)
       {
        }
    }
      

  5.   

    1:SpecialProduct_ID在数据库的字段 是什么类型的,要是int就没错
    2:Request["SpecialProduct_ID"]是否为空或者null