i verwendet drei Ebenen-Architektur System.IndexOutOfRangeException: Code eingeben hier Es gibt keine Zeile an Position 1 hier mit i mein Code hier einfügenBitte mir sagen, wo ich bin wrom, wie es zu korrigieren:
Datenschicht
Die Daten acess Schicht
public DataSet getRecordDisplay(int product_id,int category_id)
{
string constring = string.Empty;
SqlConnection conn;
constring = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
conn = new SqlConnection(constring);
conn.Open();
SqlCommand cmd = new SqlCommand("sp_Productselect", conn);
cmd.CommandText = "sp_Productselect";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@product_id", DbType.Int32).Value = product_id;
cmd.Parameters.AddWithValue("@category_id", DbType.Int32).Value = category_id;
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet dst = new DataSet();
adpt.Fill(dst);
return dst;
}
#Business logic
Geschäftslogikschicht
hier eingeschlossen istpublic DataSet getRecordDisplay(int product_id,int category_id)
{
DataSet ds = new DataSet();
ds = dal.getRecordDisplay(product_id,category_id);
return ds;
}
# code behind
int product_id = Convert.ToInt32(txtPId.Text);
int category_id = Convert.ToInt32(txtctid.Text);
DataSet dsOrderDetail = new DataSet();
dsOrderDetail = bal.getRecordDisplay(product_id, category_id);
lblProdName.Text = dsOrderDetail.Tables[0].Rows[0]["Product_Name"].ToString() + "<br/>";
lblProdId.Text = dsOrderDetail.Tables[0].Rows[1]["Product_Id"].ToString() + "<br/>";
lblProdDesc.Text = dsOrderDetail.Tables[0].Rows[2]["Description"].ToString() + "<br/>";
lblCtyId.Text = dsOrderDetail.Tables[0].Rows[3]["Category_id"].ToString() + "<br/>";
lblPrice.Text = dsOrderDetail.Tables[0].Rows[4]["Price"].ToString() + "<br/>";
lblAblty.Text = dsOrderDetail.Tables[0].Rows[5]["Availability"].ToString() + "<br/>";
#my stored procedure
stored procedure is added here
GO
CREATE PROCEDURE [dbo].[sp_Productselect]
@product_id as int,
@category_id as int
AS
BEGIN
SELECT * FROM product04 where product_id=345 and category_id=2346
END
GO
Die Ausnahme ist ziemlich klar. Sie versuchen, Daten von einer Position zu lesen, die nicht existiert. Wahrscheinlich, weil Sie versuchen, Daten aus 6 Zeilen anstatt nur einer Zeile zu lesen. – waka
Wenn Sie ein Array mit drei Elementen wie diesem 'string [3]' hatten und Sie versuchten, auf die vierte Position zuzugreifen, würden Sie einen 'index out of range' Fehler bekommen. Sie machen dasselbe, Sie versuchen, auf einen Index zuzugreifen, der nicht existiert. Wir können nicht sagen, woher von dem Code, den Sie zur Verfügung gestellt haben, Sie uns nicht einmal sagen, in welcher Zeile der Fehler auftritt ... – Equalsk
Vielen Dank, dass es funktioniert – sangeetha