C# 按钮无法将我转发到下一页

C# 按钮无法将我转发到下一页,c#,datareader,C#,Datareader,下面是按钮的代码,但当我单击按钮时,它不会将我转发到所需页面。我的DataReader循环有什么问题吗 使用try/catch语句包装代码,以查看是否引发任何异常。使用参数并尝试sqldata适配器: { SqlConnection connBadge = new SqlConnection("Data Source =localhost;" + "Initial Catalog = BreastCancer; Integrated Secu

下面是按钮的代码,但当我单击按钮时,它不会将我转发到所需页面。我的DataReader循环有什么问题吗


使用try/catch语句包装代码,以查看是否引发任何异常。

使用参数并尝试sqldata适配器:

{
    SqlConnection connBadge = new SqlConnection("Data Source =localhost;" +
                       "Initial Catalog = BreastCancer; Integrated Security = SSPI");
    connBadge.Open();

    SqlCommand cmdfBadge = new SqlCommand("SELECT * FROM Products WHERE pid='1'", connBadge);

    var dSet = new DataSet();
    var dt = new Datatable();
    var da = new SqlDataAdapter(cmdfBadge);

    da.Fill(dSet);
    dt = dSet.Tables[0];

    foreach(Datarow a in dt.Rows)
    {
        String pName = a["pName"].ToString();
        String pPrice = a["pPrice"].ToString();

        int b = Convert.ToInt16(pPrice);
        int a = Convert.ToInt16(ddQty1.SelectedValue.ToString());
        int g = a * b;

        String Badge = "INSERT into Cart (Name,Price,Quantity,gPrice) Values(@Name,@Price,@Quantity,@gPrice)";

        SqlCommand cmdBadge = new SqlCommand(Badge, connBadge);

        sqlCommand.Addwithvalue("@Name",pName);
        sqlCommand.Addwithvalue("@Price",b)
        sqlCommand.Addwithvalue("@Quantity",a)
        sqlCommand.Addwithvalue("@gPrice",g)
        cmdBadge.ExecuteNonQuery();
    }            

    connBadge.Close();

    Response.Redirect("Cart.aspx");
}

请验证您的insert语句,如果您的价格、数量和gprice的数据类型为integer类型,我相信它将失败:

String Badge = "INSERT into Cart (Name,Price,Quantity,gPrice) Values('" + pName + "', '" + b + "', '" + a + "','" + g + "')";
您不应将这些内容括在引号中,请删除引号,然后重试

String Badge = "INSERT into Cart (Name,Price,Quantity,gPrice) Values('" + pName + "', " + b + ", " + a + "," + g + ")";

以后尝试使用描述性变量名、using语句和Try catch语句。

只是一个一般性的注释,建议在连接中使用using,datareader即usingSqlDataReader dr=cmdfBadge.ExecuteReader{/*content*/}您的代码没有显示与分页有关的任何内容。您应该使用using语句,而不是显式调用Close,但这是另一回事。可能是带有按钮的页面与单独文件夹中的cart.aspxis cart.aspx相同,或者显示任何错误消息?没有错误消息,它位于同一文件夹中。response.redirect更改页面。使用datatable需要什么指令?@Kenneth,System.Data.datatable使用System.Dataha,这比我说的还要好。我建议AddWithValue方法自动将类型转换为sql类型?是的..或者如果他想具体化,当然可以使用command.Parameters。Add@Name,SqlDbType.VarChar,50.Value=pName;使用system.data是什么意思?不太擅长这个,对不起。我已经使用system.data输入了,但这不起作用,所以我尝试使用system.data.datatable,他们说这是一个名称空间,所以我不能使用
String Badge = "INSERT into Cart (Name,Price,Quantity,gPrice) Values('" + pName + "', " + b + ", " + a + "," + g + ")";