0

グリッドをデータで埋める 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;
    }
4

1 に答える 1

0

pageload イベント内の Ispostback プロパティを確認します。メソッドを !ispostback 内に配置します。

これはあなたのために働くかもしれません。

于 2012-10-26T12:45:03.733 に答える