Чтобы проверить значения в datatable и добавить значения в datatable

1

В приведенном ниже коде у меня есть статический метод, в котором у меня есть datatable со значениями и еще один пустой Datatable Orderdbl и добавление 3 столбцов.

Теперь моя цель - отправить locationid,productid,quantity в статический метод.
Теперь я хочу проверить productid в datGable dtGrid если он не имеет значения, и он должен проверять с помощью другого datatable Orderdbl если он не имеет значения, затем добавляет значения в datatable Orderdbl и сохраняет их в сеансе. Pls поможет мне в этом.

 [WebMethod(EnableSession = true)]
public static void InsertData(string LocationID, string ProductID, string Quantity)
{
   MastersClient objIndent = new MastersClient();
   DataTable dtGrid = (DataTable)HttpContext.Current.Session["VSOrderForm"];
   // DataSet ds = objIndent.CheckForExistingOrder(Int32.Parse(LocationID), ProductID);

   var DataCheck = dtGrid.Select("ProductID = '" + ProductID + "'");
   if (DataCheck.Length != 0)
   {
       // do something...
   }
    //if (ds != null && ds.Tables.Count > 0)
    //{
    //}
    else
    {
        DataTable Orderdbl = new DataTable();
        Orderdbl.Columns.Add("LocationID", typeof(string));
        Orderdbl.Columns.Add("ProductID", typeof(string));
        Orderdbl.Columns.Add("Quantity", typeof(string));
        DataRow row = Orderdbl.NewRow();
        //if (string.IsNullOrEmpty((string)Orderdbl.Rows[i][j].value))
        if (Orderdbl == null)
        {
            row["LocationID"] = LocationID;
            row["ProductID"] = ProductID;

            Orderdbl.Rows.Add(row);
            HttpContext.Current.Session["OrderForm"] = Orderdbl;
        }
        else
        {
            string FilterCond1 = "ProductID=" + ProductID;
            DataRow[] newrow = Orderdbl.Select(FilterCond1);
            if (newrow.Length > 0)
            {
                for (int i = 0; i < newrow.Length; i++)
                {
                    if (newrow[i]["ProductID"].ToString() == ProductID)
                    {
                        // YOUR CODE HERE 
                    }
                }
            }
            else
            {
                row["LocationID"] = LocationID;
                row["ProductID"] = ProductID;

                Orderdbl.Rows.Add(row);
                HttpContext.Current.Session["OrderForm"] = Orderdbl;
            }
        }
    }
}
  • 0
    Прости, друг. Никто здесь не напишет код для вас. В случае, если вы получите какую-то странную ошибку или застряли с какими-то проблемами, тогда люди помогут вам с их идеями.
  • 0
    @Thangadurai Thangadurai я написал код, пожалуйста скажите мне, где была ошибка
Показать ещё 2 комментария
Теги:

1 ответ

0
Лучший ответ

Вот что вы хотите. Первый взгляд в таблице dtGrid, если значение не найдено, будет выглядеть во втором datatable и если все еще не найдено, чем добавить новую строку

public static void InsertData(string LocationID, string ProductID, string Quantity)
{
    MastersClient objIndent = new MastersClient();
    DataTable dtGrid = (DataTable)HttpContext.Current.Session["VSOrderForm"];
    DataTable Orderdbl = (DataTable)HttpContext.Current.Session["OrderForm"];
    // DataSet ds = objIndent.CheckForExistingOrder(Int32.Parse(LocationID), ProductID);


    //Check in first table
    var DataCheck = dtGrid.Select("ProductID = '" + ProductID + "'");
    if (DataCheck.Length != 0)
    {
        // do something...
    }
    //if (ds != null && ds.Tables.Count > 0)
    //{
    //}
    else
    {
        //Not found in first now check in second talbe
        if (Orderdbl != null)
        {
            string FilterCond1 = "ProductID=" + ProductID;
            DataRow[] newrow = Orderdbl.Select(FilterCond1);
            //If Length > 0 it means found in second table,
            if (newrow.Length > 0)
            {

                for (int i = 0; i < newrow.Length; i++)
                {
                    if (newrow[i]["ProductID"].ToString() == ProductID)
                    {
                        // YOUR CODE HERE 
                    }
                }
            }
            else
            {
                //Not found in second talbe now add new row

                DataRow row = Orderdbl.NewRow();
                //if (string.IsNullOrEmpty((string)Orderdbl.Rows[i][j].value))
                row["LocationID"] = LocationID;
                row["ProductID"] = ProductID;
                Orderdbl.Rows.Add(row);
                HttpContext.Current.Session["OrderForm"] = Orderdbl;
            }
        }
        else
        {
            //This will run first time when session has no value.
            Orderdbl = new DataTable();
            Orderdbl.Columns.Add("LocationID", typeof(string));
            Orderdbl.Columns.Add("ProductID", typeof(string));
            Orderdbl.Columns.Add("Quantity", typeof(string));
            DataRow row = Orderdbl.NewRow();
            //if (string.IsNullOrEmpty((string)Orderdbl.Rows[i][j].value))
            row["LocationID"] = LocationID;
            row["ProductID"] = ProductID;
            Orderdbl.Rows.Add(row);
            HttpContext.Current.Session["OrderForm"] = Orderdbl;
        }


    }
}
  • 0
    Я хочу проверить productid в datGrid с данными, если он не имеет значения, и он должен проверить с другим datatlable Dataatable, если у него нет значения, затем добавить значения в Datadable Orderdbl и сохранить его в сеансе
  • 0
    Вы присвоили значение для Session ["OrderForm"], и вы читаете из Session ["VSOrderForm"], верно?
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню