将记录插入数据库后,PageRefresh无法正常工作

时间:2012-10-26 11:39:33

标签: c# asp.net

我有一个名为fillgrid()的函数,它用数据填充网格。但是在我调用insert()函数将数据插入数据库后,它没有被执行。

它在我的本地系统中正常工作。但是当我发布我的解决方案并将其放入服务器时,fillgrid()函数没有被执行。我没有得到任何错误,我无法识别为什么fillgrid()函数没有被调用??

这是我的插入功能代码。

DataTable dtMob = new DataTable();
dtMob = dtMobilizn.Copy();
DataSet dsMobilizn=new DataSet("dsMobilization");
dsMobilizn.Tables.Add(dtMob);
int i = clsMob.InsertMobilizationDetails(dsMobilizn.GetXml());//i am getting the value as 1 when i debugged in local system
if (i != -1)
{
    FillGrid();//This function is not getting called.
}
else
{
    string str = "<script>alert('Cannot mobilize')</script>";
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Validation Error", str, false);
    return;
}

这是填充网格功能的代码。此功能在页面加载时调用,并且工作正常。

        DataTable dtGrid = clsMob.GetStandByEmployee(txtSrchEmpCode.Text.Trim());
        if (dtGrid.Rows.Count > 0)
        {
            if (ViewState["Sort"] != null)
            {
                DataView dView = new DataView(dtGrid);
                dView.Sort = ViewState["Sort"].ToString();
                gdMobilizn.DataSource = dView;
                gdMobilizn.DataBind();
            }
            else
            {
                gdMobilizn.DataSource = dtGrid;
                gdMobilizn.DataBind();
            }
        }
        else
        {
            gdMobilizn.DataSource = null;
            gdMobilizn.EmptyDataText = "No Standby Employees Found";
            gdMobilizn.DataBind();
        }

这是InsertMobilizationDetails的功能

public int InsertMobilizationDetails(string xml)
{
    Database_Operations dbo = new Database_Operations("TransMob_InDetails", true);
    dbo.AddParameter("@xmlMob", xml);        
    return dbo.ExecuteQuery();       
}

这是ExecuteQuery的功能

public int ExecuteQuery()
    {
        int rowsAffected = -1;
        SqlCon = new SqlConnection();
        using (SqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["SQL_CONNECTION"].ToString()))
        {
            try
            {
                SqlCon.Open();
                SqlCmd.Connection = SqlCon;
                SqlTransaction transaction;
                transaction = SqlCon.BeginTransaction();
                try
                {
                    SqlCmd.Transaction = transaction;
                    rowsAffected = SqlCmd.ExecuteNonQuery();
                    transaction.Commit();
                    rowsAffected = 1;
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    rowsAffected = -1;
                    //Response.Write(ex.Message);
                }
            }
            catch (Exception exp)
            {
                rowsAffected = -1;
                //Response.Write(exp.Message);
            }
            finally
            {
                SqlCon.Close();
                SqlCon.Dispose();
            }
        }
        return rowsAffected;
    }

1 个答案:

答案 0 :(得分:0)

检查pageload事件中的Ispostback属性。将方法放在里面!ispostback。

可能适合您。