locked
Numbering all records in the grid view with a unified number RRS feed

  • Question

  • User1865404792 posted
    I have a gridview that contains records
    When inserting the records to database They are numbered consecutively (7,8,9)
    I want to search for the largest value in the database
    Then number all fields in gridview with the following number (7,7,7)
    i use this code
    for (int i = 0; i < gradeaddorder.Rows.Count; i++) { OracleCommand cmd = new OracleCommand("insert into orders (order_no,inserter_no,date_e,pharms_no,ITEMS_NO,quantity,bonus_type) VALUES ((select max(order_no) from orders)+1,'" + lblman_no.Text + "', to_date('" + TextBox1.Text + "12:00:00','YYYY-MM-DD HH:MI:ss') ,'" + hdpharms_no.Value + "','" + gradeaddorder.Rows[i].Cells[4].Text + "','" + gradeaddorder.Rows[i].Cells[2].Text + "','" + gradeaddorder.Rows[i].Cells[1].Text + "')", connect); if (connect.State == ConnectionState.Closed) { connect.Open(); } cmd.ExecuteNonQuery(); connect.Close(); } Response.Write("<script>alert('تمت عملة الحفظ');</script>");



    and this all code C#

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data;//لاضافة الجدول using Oracle.ManagedDataAccess.Client; using System.Web.Services; using System.Configuration; public partial class orders : System.Web.UI.Page { OracleConnection connect = new OracleConnection("data source=localhost:1521/orcl; user id=alhakimy; password=alhakimyyes;"); //تعريف تايبل من اجل اضافه العينات للجريد فيو DataTable order = new DataTable(); protected void Page_Load(object sender, EventArgs e) { ///////////////////////// //من اجل هل تم تحميل الصفحه مجددا ام لا لاضافه العيانات للجريد فيو if (!Page.IsPostBack) { if (ViewState["records"] == null) { order.Columns.Add("item_no"); order.Columns.Add("item_name"); order.Columns.Add("qun"); order.Columns.Add("bonus"); ViewState["records"] = order; } } ///////////////////////////////////اذا كان الرابط يذهب على طول لصفحه غير صفحة الدخول فيجب ان يعود لصفحه تسجيل الدخول كيف هذا\ //سنكتب الكود التالي الذي يقول عند تحميل الصفحه لو كان المتغير الذي ياخر قيمة رقم المستخدم فارغ اي انه لم يقم بادخال رقم المستخدم افتح صفحة تسجيل الدخول كالتالي if (!Page.IsPostBack) { if (Session["user_no"] == null) { Response.Redirect("login.aspx"); } } // طباعة اسم الستتخدم على ليبل 7 ورقم المستخدم في ليبل الرقم if (Session["user_name"] != null) { Label2.Text = Session["user_name"].ToString(); } if (Session["user_no"] != null) { lblman_no.Text = Session["user_no"].ToString();//طباعة رقم المستخدم في اليبل } /////////////////////////////////////// ///////////////////////////////اضهار رقم واسم المدينة التي يعمل بها المندوب الذي سجل الدخول try { if (connect.State == ConnectionState.Closed) { connect.Open(); } //المدينة التي يعمل فيها المندوب الذي سجل الدخول OracleDataAdapter adbter_comp_no = new OracleDataAdapter("SELECT ALL mandob_up.comp_NO, comp.comp_NAME FROM comp, mandob_up WHERE mandob_up.comp_NO = comp.comp_NO and(mandob_up.man_no = '" + lblman_no.Text + "')", connect); DataTable tab_comp_no = new DataTable(); connect.Close(); adbter_comp_no.Fill(tab_comp_no); ddcomp.DataSource = tab_comp_no; ddcomp.DataTextField = "comp_NAME"; ddcomp.DataValueField = "comp_NO"; ddcomp.DataBind(); ///////////////////////اخذ رقم الشركة من اجل استخدامها في الويب ميثود //Session["city_no"] = DropDownList4.SelectedValue; } catch (Exception ex) { Console.WriteLine(ex); } } ///////////////////// ///////////////////////////////// الطوة الثانية لعمل اوتو كمبليت حيث الاولى هي المفاتيح والتكست بوكس1 وبداخله اوتوكمبليت [System.Web.Script.Services.ScriptMethod()] [System.Web.Services.WebMethod] public static List<string> GetCompletionList(string prefixText) { using (OracleConnection con = new OracleConnection("data source=localhost:1521/orcl; user id=alhakimy; password=alhakimyyes;")) { using (OracleCommand com = new OracleCommand()) { com.CommandText = "select pharms_no, pharms_name from pharms where city_no= " + HttpContext.Current.Session["city_no"].ToString() + " and pharms_name like '%" + prefixText + "%' "; com.Parameters.Add("TextBox2", prefixText); com.Connection = con; con.Open(); List<string> summ = new List<string>(); using (OracleDataReader sdr = com.ExecuteReader()) { while (sdr.Read()) { summ.Add(string.Format("{0}-{1}", sdr["pharms_NAME"], sdr["pharms_NO"]));//اذا اضفنا عمود جملة السكلته سنضيفه هنا كالبقية } } con.Close(); return summ; } } } protected void btnback_Click(object sender, EventArgs e) { Response.Redirect("main.aspx"); } protected void btnnew_Click(object sender, EventArgs e) { TextBox1.Text = DateTime.Now.ToString("yyyy/MM/dd"); TextBox2.Enabled = true; DropDownList2.Enabled = true; DropDownList3.Enabled = true; txt_qun.Enabled = true; btnadd.Enabled = true; btnsave.Enabled = true; //عرض اسماء الاصناف الخاص بالشكره للنسحل الذي سجل الدخول //OracleConnection connect = new OracleConnection("data source=localhost:1521/orcl; user id=alhakimy; password=alhakimyyes;"); try { if (connect.State == ConnectionState.Closed) { connect.Open(); } OracleDataAdapter adbter_items = new OracleDataAdapter("SELECT ALL items.ITEMS_NO, ITEMS.ITEMS_NAME FROM ITEMS WHERE (items.comp_no = '" + ddcomp.SelectedValue + "')", connect); DataTable tab_items = new DataTable(); connect.Close(); adbter_items.Fill(tab_items); DropDownList2.DataSource = tab_items; DropDownList2.DataTextField = "ITEMS_NAME"; DropDownList2.DataValueField = "ITEMS_NO"; DropDownList2.DataBind(); } catch (Exception ex) { Console.WriteLine(ex); } ///////////////////////////////اضهار رقم واسم المدينة التي يعمل بها من سجل الدخول try { if (connect.State == ConnectionState.Closed) { connect.Open(); } //المدينة التي يعمل فيها المندوب الذي سجل الدخول OracleDataAdapter adbter_city_no = new OracleDataAdapter("SELECT ALL mandob_up.city_NO, city.city_NAME FROM city, mandob_up WHERE mandob_up.city_NO = city.city_NO and(mandob_up.man_no = '" + lblman_no.Text + "')", connect); DataTable tab_city_no = new DataTable(); connect.Close(); adbter_city_no.Fill(tab_city_no); ddcity.DataSource = tab_city_no; ddcity.DataTextField = "CITY_NAME"; ddcity.DataValueField = "CITY_NO"; ddcity.DataBind(); ///////////////////////اخذ رقم المدينه من اجل استخدامها في الويب ميثود //اذا كان الدروب داون الخاص بالمدينه فارغ فانه سيعمل لنا مشكله عند تسجيل الطلبيات //لانه في حالة دخل للصفحه شخص غير منتسب لمدينه فانه عند اختيار صيدليه ستضهر الايرور //لذلك هنا سنعمل شرط بحالة ان الدروب داون فارغ فانه يظهر رسله للمتخدم ويرجع للشاشه الرئيسية if (string.IsNullOrEmpty(ddcity.Text)) { string message = "انت غير منتسب لمدينة. راجع مسئول النظام"; string url = "main.aspx"; //للذهاب لصفحه في الموقع //string url = "//google.com/"; //للذهاب موقع محدد string script = "window.onload = function(){ alert('"; script += message; script += "');"; script += "window.location = '"; script += url; script += "'; }"; ClientScript.RegisterStartupScript(this.GetType(), "Redirect", script, true); } else { //اخذ رقم المدينه من اجل استخدامها في الويب ميثود Session["city_no"] = ddcity.SelectedValue; } } catch (Exception ex) { Console.WriteLine(ex); } } protected void btnadd_Click(object sender, EventArgs e) { if(hdpharms_no.Value=="")//اولا التحقق من ان اسم العميل موجود { Response.Write("<script>alert('ادخل اسم العميل');</script>"); } else { if ( txt_qun.Text=="")//التحقق من ادخل كمية الطلبيه للنصف الذي سيتم انزاله للجريدفيو { Response.Write("<script>alert('ادخل كمية الطلبية');</script>"); } else { //جملة الشرط التالية تقول لوكان حقل كمية العينات اقل او تساوي صفر اضهر الليبل الذي يقول دخل قيمة اكبر من صفر if (int.Parse(txt_qun.Text) < 1) { Label7.Text = "ادخل قيمة اكبر من صفر"; //تم استخدام انتجر دوت بارس لانه لانه يقبل فقط سترينج داخل التكست بوكس } else { //اضافه للجريد فيو الخاصه بالعينات order = (DataTable)ViewState["records"]; order.Rows.Add(DropDownList2.SelectedItem.Value, DropDownList2.SelectedItem.Text, txt_qun.Text, DropDownList3.SelectedValue); gradeaddorder.DataSource = order; gradeaddorder.DataBind(); } DropDownList2.SelectedIndex = 0; DropDownList3.SelectedIndex = 0; txt_qun.Text = ""; } } } protected void gradeaddorder_RowDeleting(object sender, GridViewDeleteEventArgs e) { //لحذف صف من الجريد فيو عند الضغط على علامة الاكس order = (DataTable)ViewState["records"]; order.Rows[e.RowIndex].Delete(); gradeaddorder.DataSource = order; gradeaddorder.DataBind(); } protected void btnsave_Click(object sender, EventArgs e) { try { if (hdpharms_no.Value == "")//اولا التحقق من ان اسم العميل موجود { Response.Write("<script>alert('ادخل اسم العميل');</script>"); } else { for (int i = 0; i < gradeaddorder.Rows.Count; i++) { OracleCommand cmd = new OracleCommand("insert into orders (order_no,inserter_no,date_e,pharms_no,ITEMS_NO,quantity,bonus_type) VALUES ((select max(order_no) from orders)+1,'" + lblman_no.Text + "', to_date('" + TextBox1.Text + "12:00:00','YYYY-MM-DD HH:MI:ss') ,'" + hdpharms_no.Value + "','" + gradeaddorder.Rows[i].Cells[4].Text + "','" + gradeaddorder.Rows[i].Cells[2].Text + "','" + gradeaddorder.Rows[i].Cells[1].Text + "')", connect); if (connect.State == ConnectionState.Closed) { connect.Open(); } cmd.ExecuteNonQuery(); connect.Close(); } Response.Write("<script>alert('تمت عملة الحفظ');</script>"); } } catch (Exception ex) { Console.WriteLine(ex); } //تفريغ الحقول عند الحفظ TextBox2.Text = ""; txt_qun.Text = ""; DropDownList2.SelectedIndex = 0; DropDownList3.SelectedIndex = 0; gradeaddorder.DataSource = null; gradeaddorder.DataBind(); //تفريغ الداتا تايبل DataTable order = (DataTable)ViewState["records"]; order.Rows.Clear(); ViewState["records"] = order; //الغاء تفعيل الازرار بعد عملية الحفظ من اجل عملية جديده TextBox2.Enabled = false; DropDownList2.Enabled = false; DropDownList3.Enabled = false; txt_qun.Enabled = false; btnadd.Enabled = false; btnsave.Enabled = false; } }
    HTML

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="orders.aspx.cs" Inherits="orders" %> <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <!-- قبول الرموز في المتصفح --> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <!-- توافق العمل مع اكسبلورر --> <meta name="viewport" content="width=device-width, initial-scale=1" /> <!-- التوافق مع الموبايل --> <title>orders Reg</title> <meta name="viewport" content="width=device-width, initial-scale=1" /> <!-- التوافق مع الموبايل --> <!-- هذه الثلاثه الاسطر ضروريه جدا من اجل تشغيل الجافا --> <!-- ويضا بها نقوم بنسخ رقم الطبيب المزار للحقل المخفي --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.min.js"></script> <link rel="Stylesheet" type="text/css" href="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/themes/blitzer/jquery-ui.css" /> <!-- لحفظ رقم الطبيب المختار في صفحة الزيارات في الحقل المخفي من اجل الحفظ في قاع --> <script type="text/javascript"> $(function () { $("[id$=TextBox2]").autocomplete({ source: function (request, response) { $.ajax({ url: '<%=ResolveUrl("~/orders.aspx/GetCompletionList") %>', data: "{ 'prefixText': '" + request.term + "'}", dataType: "json", type: "POST", contentType: "application/json; charset=utf-8", success: function (data) { response($.map(data.d, function (item) { return { label: item.split('-')[0], val: item.split('-')[1] } })) }, error: function (response) { alert(response.responseText); }, failure: function (response) { alert(response.responseText); } }); }, select: function (e, i) { $("[id$=hdpharms_no]").val(i.item.val); }, ///////////هذا القسم يقو باضهار رساله في حاله قام المستخدم بكتابة اسم من خارج القائمة change:function(e, ui){ if(!(ui.item)){ e.target.value=""; alert("الاختيار من القائمة فقط"); } }, /////////// minLength: 1 }); }); </script> <!--ادخال فقط ارقام في تكست كمية الطلبية --> <script type="text/javascript"> function CheckNumeric(e) { if (window.event) // IE { if ((e.keyCode < 48 || e.keyCode > 57) & e.keyCode != 8) { event.returnValue = false; return false; } } else { // Fire Fox if ((e.which < 48 || e.which > 57) & e.which != 8) { e.preventDefault(); return false; } } } </script> <!-- هذا الوسم التالي يقوم بعمل سكرول بار للاوتوكمبليت--> <!-- والقائمة الرئيسية السابقه الطويله ولذلك سندخل لخصائل التكتس بوكس ومن خاصية الاوتوكمبليت في الخاصيه انبل نجعلها فولس--> <style type="text/css"> .ui-autocomplete { ; cursor:default; max-height:250px; overflow-y:scroll; overflow-x:hidden; -webkit-overflow-scrolling:touch; } </style> <style type="text/css"> .auto-style1 { text-align: right; } .auto-style2 { height: 38px; } .auto-style3 { background-color: #F0F0F0; } .auto-style4 { font-size: large; font-weight: bold; color: #0033CC; } .auto-style5 { height: 38px; text-align: right; } .auto-style7 { font-size: large; } .auto-style8 { height: 38px; text-align: left; } .auto-style9 { text-align: left; } .auto-style10 { font-size: large; font-weight: bold; } .auto-style11 { font-size: large; margin-left: 0px; } .auto-style12 { height: 38px; text-align: center; } .auto-style13 { font-size: large; color: #0033CC; } .auto-style14 { color: #FF0000; } .auto-style16 { background-color: #F0F0F0; text-align: center; font-size: large; } /* من اجل نجعل الجدول الذي به جميع الحقول ملئ شاشة الجوال سنقوم بثلاث خطوات */ /* الخطوة الاولى هي كتابة هذين الكودين في الاسفل */ .div-only-mobile{ width:355px; height:auto; margin:0px; } @media screen and (max-width:600px){ div.div-only-mobile{ display:inline; align-content:space-between; } } /* نهاية الكود الخاص بالموبايل */ </style> </head> <body> <form id="form1" runat="server"> <div> <!-- ثانيا هي (عند اضافه الجدول للعمل سيكون داخل ديف كبير خاص بالبدي)سنضيف تحته ديف جديده ونعيه الكلاس الذي عملناه في الخطوه الاولى مثل الكود التالي --> <div class="div-only-mobile"> <!--ثم الخطوه الثالثه و الاخيره هي سنذهب للشاشه ونضغط على الديف التي تحتوي على الجدول ومن الخصائص سنذهب الى كلاس ونختار الكلاس الذي عملناه سابقه وهو ديف اونلي موبايل --> <table align="center" class="auto-style3"> <tr> <td colspan="6"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> </td> </tr> <tr> <td colspan="6"> <asp:Image ID="Image1" runat="server" ImageUrl="~/img/orders.jpg" /> </td> </tr> <tr> <td>&nbsp;</td> <td class="auto-style1" colspan="4"><strong>&nbsp; <asp:Label ID="Label2" runat="server" Text="Label" Width="70%"></asp:Label> <asp:Label ID="Label1" runat="server" Text=":المستخدم"></asp:Label> </strong></td> <td>&nbsp;</td> </tr> <tr> <td class="auto-style2"></td> <td class="auto-style2" colspan="2"> <strong> <asp:Button ID="btnback" runat="server" CssClass="auto-style4" Height="35px" OnClick="btnback_Click" Text="رجوع للرئيسية" Width="140px" CausesValidation="False" /> </strong> </td> <td class="auto-style5" colspan="2"> <strong> <asp:Button ID="btnnew" runat="server" CssClass="auto-style4" Height="35px" OnClick="btnnew_Click" Text="طلبية جديده" Width="140px" CausesValidation="False" /> </strong> </td> <td class="auto-style2"></td> </tr> <tr> <td class="auto-style2">&nbsp;</td> <td class="auto-style8" colspan="4"><strong> <asp:TextBox ID="TextBox1" runat="server" BorderStyle="None" CssClass="auto-style16" Enabled="False" Font-Size="12pt" Height="30px" Width="259px"></asp:TextBox> <asp:Label ID="Label8" runat="server" CssClass="auto-style7" Text=":التاريخ "></asp:Label> </strong></td> <td class="auto-style2">&nbsp;</td> </tr> <tr> <td class="auto-style2"></td> <td class="auto-style8" colspan="4"> <asp:TextBox ID="TextBox2" runat="server" onpaste="return false" oncopy="return false" oncut="return false" Height="30px" style="font-size: large; font-weight: 700" Width="265px" autocomplete="off" Enabled="False"></asp:TextBox> <cc1:AutoCompleteExtender ID="TextBox2_AutoCompleteExtender" runat="server" TargetControlID="TextBox2" CompletionInterval="500" ServiceMethod="GetCompletionList" Enabled="False"> </cc1:AutoCompleteExtender> <strong> <asp:Label ID="Label3" runat="server" CssClass="auto-style7" Text=":العميل "></asp:Label> </strong></td> <td class="auto-style2"></td> </tr> <tr> <td>&nbsp;</td> <td class="auto-style9" colspan="4"><strong> <asp:DropDownList ID="DropDownList2" runat="server" onpaste="return false" oncopy="return false" oncut="return false" CssClass="auto-style10" Enabled="False" Height="30px" Width="270px"> </asp:DropDownList> <asp:Label ID="Label4" runat="server" CssClass="auto-style7" Text=":الصنف"></asp:Label> </strong></td> <td>&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td class="auto-style1"> &nbsp;</td> <td class="auto-style9" colspan="3"><strong> <asp:TextBox ID="txt_qun" onkeypress="CheckNumeric(event);" runat="server" onpaste="return false" oncopy="return false" oncut="return false" CssClass="auto-style11" Enabled="False" Height="30px" Width="105px" autocomplete="off"></asp:TextBox> <asp:Label ID="Label5" runat="server" CssClass="auto-style7" Text=":الكمية"></asp:Label> </strong></td> <td>&nbsp;</td> </tr> <tr> <td class="auto-style2">&nbsp;</td> <td class="auto-style8" colspan="4"> <strong> <asp:DropDownList ID="DropDownList3" runat="server" onpaste="return false" oncopy="return false" oncut="return false" CssClass="auto-style7" Enabled="False" Height="30px" Width="270px"> <asp:ListItem Value="cash">بونص النقد</asp:ListItem> <asp:ListItem Value="delay">بونص الأجل</asp:ListItem> <asp:ListItem Value="susp">بونص النقد المعلق</asp:ListItem> </asp:DropDownList> <asp:Label ID="Label6" runat="server" CssClass="auto-style7" Text=":البونص"></asp:Label> </strong> </td> <td class="auto-style2">&nbsp;</td> </tr> <tr> <td class="auto-style2">&nbsp;</td> <td class="auto-style12" colspan="4"> <strong> <asp:Button ID="btnadd" runat="server" CssClass="auto-style13" Height="35px" Text="اضافة صنف للعميل" OnClick="btnadd_Click" Enabled="False" /> </strong></td> <td class="auto-style2">&nbsp;</td> </tr> <tr> <td class="auto-style12" colspan="6"> <asp:Label ID="Label7" runat="server" CssClass="auto-style14"></asp:Label> </td> </tr> <tr> <td class="auto-style12" colspan="6"> <div style="max-height:150px; max-width:340px; overflow:scroll" > <asp:GridView ID="gradeaddorder" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%" AutoGenerateColumns="False" OnRowDeleting="gradeaddorder_RowDeleting"> <AlternatingRowStyle BackColor="White" /> <Columns> <asp:CommandField ButtonType="Image" DeleteImageUrl="~/img/delete.png" HeaderText="حذف" ShowDeleteButton="True" /> <asp:BoundField DataField="bonus" HeaderText="البونص" ReadOnly="True" /> <asp:BoundField DataField="qun" HeaderText="الكمية" ReadOnly="True" /> <asp:BoundField DataField="item_name" HeaderText="الصنف" ReadOnly="True" /> <asp:BoundField DataField="item_no" HeaderText="الرقم" ReadOnly="True" /> </Columns> <EditRowStyle BackColor="#2461BF" /> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#EFF3FB" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#F5F7FB" /> <SortedAscendingHeaderStyle BackColor="#6D95E1" /> <SortedDescendingCellStyle BackColor="#E9EBEF" /> <SortedDescendingHeaderStyle BackColor="#4870BE" /> </asp:GridView> </div> </td> </tr> <tr> <td class="auto-style2">&nbsp;</td> <td class="auto-style2"> <asp:Button ID="btnsave" runat="server" CssClass="auto-style7" Enabled="False" Text="حفظ" Width="90px" OnClick="btnsave_Click" /> </td> <td class="auto-style2" colspan="2">&nbsp;</td> <td class="auto-style2"> <asp:DropDownList ID="ddcity" runat="server" Visible="False"> </asp:DropDownList> </td> <td class="auto-style2">&nbsp;</td> </tr> <tr> <td class="auto-style2"></td> <td class="auto-style2"> <asp:Label ID="lblman_no" runat="server" Visible="False"></asp:Label> </td> <td class="auto-style2" colspan="2"></td> <td class="auto-style2"> <asp:DropDownList ID="ddcomp" runat="server" Visible="False"> </asp:DropDownList> </td> <td class="auto-style2"></td> </tr> <tr> <td class="auto-style2">&nbsp;</td> <td class="auto-style2"> <asp:HiddenField ID="hdpharms_no" runat="server" /> </td> <td class="auto-style2" colspan="2">&nbsp;</td> <td class="auto-style2"> &nbsp;</td> <td class="auto-style2">&nbsp;</td> </tr> </table> </div> </div> </form> </body> </html>


    Saturday, September 19, 2020 5:04 PM

All replies

  • User1865404792 posted
    I used this method
    It works fine

    Before saving, it brings the largest value to the dropdown list
    After that, I get this value and included it in the insert statement

    but
    Is this way fast?
    If more than one user saves at the same moment
    protected void btnsave_Click(object sender, EventArgs e)
        {
            try
            {
                if (connect.State == ConnectionState.Closed)
                {
                    connect.Open();
                }
                OracleDataAdapter big_order_no = new OracleDataAdapter("select max(order_no) from orders", connect);
                DataTable orders_no = new DataTable();
                connect.Close();
    
                big_order_no.Fill(orders_no);
                DropDownList4.DataSource = orders_no;
                DropDownList4.DataTextField = "max(order_no)";
                DropDownList4.DataBind();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
     
            try
            {
                if (hdpharms_no.Value == "")
                {
                    Response.Write("<script>alert('ادخل اسم العميل');</script>");
                }
                else
                {
                    for (int i = 0; i < gradeaddorder.Rows.Count; i++)
                    {
                        OracleCommand cmd = new OracleCommand("insert into orders (order_no,inserter_no,date_e,pharms_no,ITEMS_NO,quantity,bonus_type) VALUES ('"+ DropDownList4.Text +"'+1 ,'" + lblman_no.Text + "', to_date('" + TextBox1.Text + "12:00:00','YYYY-MM-DD HH:MI:ss') ,'" + hdpharms_no.Value + "','" + gradeaddorder.Rows[i].Cells[4].Text + "','" + gradeaddorder.Rows[i].Cells[2].Text + "','" + gradeaddorder.Rows[i].Cells[1].Text + "')", connect);
                        if (connect.State == ConnectionState.Closed)
                        {
                            connect.Open();
                        }
                        cmd.ExecuteNonQuery();
                        connect.Close();
                    }
    
                    Response.Write("<script>alert('تمت عملة الحفظ');</script>");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
    Sunday, September 20, 2020 4:49 PM
  • User-939850651 posted

    Hi alhakimy,

    Before saving, it brings the largest value to the dropdown list
    After that, I get this value and included it in the insert statement

    but
    Is this way fast?
    If more than one user saves at the same moment

    If you need to insert multiple records into the database at the same time and keep the same number, you really need to save the number (using hidden field controls,Cookie or other storage methods), and then execute the corresponding insert statement.

    On the other hand, if you want to control the number to not cause problems when multiple users operate, you may need to use
    Thread Synchronization related concepts.

    Best regards,

    Xudong Peng

    Monday, September 21, 2020 9:45 AM