第0列没有行

时间:2014-04-13 08:26:18

标签: asp.net sql dataset rowcommand

我在该网格上有一个网格和一个链接按钮,它们有行命令,但每当我点击该按钮时,它会显示错误,即第0列没有行。 我调试了整个代码这么多次,但总是它向我显示即使数据集的特定列中有数据也没有列。 我是asp.net以及sql的新手所以只知道如何放置代码但逻辑没有被清除,请任何人都可以清除此查询。你的帮助对我来说太过分了。

protected void grdManageBRProperty_RowCommand(object sender, GridViewCommandEventArgs e)
{
    Session["prptIdBRP"] = e.CommandArgument.ToString();
    string id = Session["prptIdBRP"].ToString();

    ds = obj.sel("select tblPropertyMaster.PropertyId,  tblPropertyTypeMaster.PropertyTypeName, tblSubPropertyTypeMaster.PropertySubTypeName, tblPropertyMaster.Floor, tblPropertyMaster.PlotArea, tblPropertyMaster.BuitUpArea, tblPropertyMaster.ExpectedAmount, tblCityMaster.CityName,  tblLocationMaster.LocationName, tblBuilderMaster.BuilderName, tblPropertyMaster.Description, tblPropertyMaster.Remarks, tblPropertyMaster.Furniture AS Furntr, tblPropertyMaster.IsAdvertise, tblPropertyMaster.Status, tblPropertyMaster.OwnerName, tblPropertyMaster.Address, tblPropertyMaster.ContactNo, tblPropertyMaster.MobileNo, tblPropertyMaster.EmailId from tblPropertyMaster INNER JOIN tblPropertyTypeMaster ON tblPropertyMaster.PropertyTypeId=tblPropertyTypeMaster.PropertyTypeId INNER JOIN tblSubPropertyTypeMaster ON tblPropertyMaster.PropertySubTypeId=tblSubPropertyTypeMaster.PropertySubTypeId INNER JOIN tblCityMaster ON tblPropertyMaster.CityId=tblCityMaster.CityId INNER JOIN tblLocationMaster ON tblPropertyMaster.LocationId=tblLocationMaster.LocationId INNER JOIN tblBuilderMaster ON tblPropertyMaster.BuilderName=tblBuilderMaster.BuilderId where tblPropertyMaster.PropertyId= '" + id + "'");
    string furn = ds.Tables[0].Rows[0]["Furntr"].ToString();

    if (furn == "True")
    {
        rbBRPFetchFurnitureYesC.Checked = true;
    }
    if (furn == "False")
    {
        rbBRPFetchFurnitureNoC.Checked = true;
    }

    string stts = ds.Tables[0].Rows[0]["Status"].ToString();
    if (stts == "True")
    {
        rbBRPFetchStatusSoldC.Checked = true;
    }
    if (stts == "False")
    {
        rbBRPFetchStatusNtSoldC.Checked = true;
    }

    string advrts = ds.Tables[0].Rows[0]["IsAdvertise"].ToString();
    if (advrts == "True")
    {
        rbBRPFetchIsAdYesC.Checked = true;
    }
    if (advrts == "False")
    {
        rbBRPFetchIsAdNoC.Checked = true;
    }

    ddlBRPFetchTypOfPrptC.SelectedItem.Text = ds.Tables[0].Rows[0]["PropertyTypeName"].ToString();
    ddlBRPFetchSbTypOfPrptC.SelectedItem.Text = ds.Tables[0].Rows[0]["PropertySubTypeName"].ToString();
    txtBRPFetchFloorC.Text = ds.Tables[0].Rows[0]["Floor"].ToString();
    txtBRPFetchPlotAreaC.Text = ds.Tables[0].Rows[0]["PlotArea"].ToString();
    txtBRPFetchBiultUpAreaC.Text = ds.Tables[0].Rows[0]["BuitUpArea"].ToString();
    txtBRPFetchAmountC.Text = ds.Tables[0].Rows[0]["ExpectedAmount"].ToString();
    ddlBRPFetchCityC.SelectedItem.Text = ds.Tables[0].Rows[0]["CityName"].ToString();
    ddlBRPFetchLocationC.SelectedItem.Text = ds.Tables[0].Rows[0]["LocationName"].ToString();
    ddlBRPFetchBuilderNameC.SelectedItem.Text = ds.Tables[0].Rows[0]["BuilderName"].ToString();
    txtBRPFetchDescC.Text = ds.Tables[0].Rows[0]["Description"].ToString();
    txtBRPFetchRemrksC.Text = ds.Tables[0].Rows[0]["Remarks"].ToString();
    txtBRPFetchOwnerNameC.Text = ds.Tables[0].Rows[0]["OwnerName"].ToString();
    txtBRPFetchAddressC.Text = ds.Tables[0].Rows[0]["Address"].ToString();
    txtBRPFetchConNumberC.Text = ds.Tables[0].Rows[0]["ContactNo"].ToString();
    txtBRPFetchMobNumberC.Text = ds.Tables[0].Rows[0]["MobileNo"].ToString();
    txtBRPFetchEmailC.Text = ds.Tables[0].Rows[0]["EmailId"].ToString();
    pnlBRPUpdateBySessionCriteria.Visible = true;
    pnlSearchBRPByDate.Visible = false;
    pnlBRPManageGrid.Visible = false;
}

1 个答案:

答案 0 :(得分:0)

作为预防措施,请务必首先检查行是否存在,然后仅从行中提取值。

if(ds.Tables[0].Rows.Count > 0)
{
// Your code

}
相关问题