الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إدخال البيانات عن طريق Gridview

بدأه العصر الذهبي في 15 مايو 2011 · 36 رد · 2,915 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

أود الاستفسار إن تكرمتم

لدي قريد فيو ، وأحد أعمدتها عبارة عن تيكست بوكس أقوم بإدخال البيانات إليه وبالضغط على زر حفظ يقوم بحفظ البيانات التي أدخلتها إلى قاعدة البيانات

كيف استطيع حل هذه المشكلة ؟ ولو امكن وضع مثال مشابه لمثل هذه الحالة

علما بإني استخدم السي شارب في asp.net

وشكر الله لكم

#2

القريد فيو لا تدخل بيانات جديد ولكن يمكن التعديل وحذف البيانات القديمة بشرط وجود مفاتح اساسي في الجدول وبعد وضع القريد فيو اختر وضع التعديل من القائمة المرافقة للقريد فيو هذا كل شيء

#3

السلام عليكم ورحمه الله وبركاته

اخي يمكنني عمل مثال لادخال البيانات باستخدام ال GridView بس للتوفير انصحك باستخدام الاداه الرائعه ListView والتي تجمع محاسن ال DataBinding Controls

.:: Wish to become better and better ::.

#4
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي يمكنني عمل مثال لادخال البيانات باستخدام ال GridView بس للتوفير انصحك باستخدام الاداه الرائعه ListView والتي تجمع محاسن ال DataBinding Controls

وعليكم السلام

رفع الله قدرك لم اتعامل مع اللست فيو قبل ذلك ولا أعلم شيئا عنها

إن امكن وضع مثال للقريد فيو حتى يسهل علي تطبيقها

وجزاك الله كل خير

#5

السلام عليكم ورحمه الله وبركاته

اخي ارفقت لك مشروع لتوضيح الفكره .. وحاول تستخدم ال ListView للفائدة ...

WebApplication1.zip

1

.:: Wish to become better and better ::.

#6
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي ارفقت لك مشروع لتوضيح الفكره .. وحاول تستخدم ال ListView للفائدة ...

غفر الله لك

لدي استفسار ، بالنسبة للمثال الذي وضعته بلغة الفيجوال دوت نت وانا استخدم لغة السي شارب وعندما حاولت فتحه ظهرت لي صفحة الكود الموجود تحت

هل الكود الموجود في زر Add هو هذا الكود فقط؟

 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
        SqlDataSource1.InsertParameters("Name").DefaultValue = CType(GridView1.FooterRow.FindControl("txtName"), TextBox).Text
        SqlDataSource1.InsertParameters("Email").DefaultValue = CType(GridView1.FooterRow.FindControl("txtEmail"), TextBox).Text
        SqlDataSource1.InsertParameters("Gender").DefaultValue = CType(GridView1.FooterRow.FindControl("ddlGender"), DropDownList).SelectedValue
        SqlDataSource1.Insert()
        GridView1.DataBind()
    End Sub

وهل المثال قام بحفظ ما تم إدخاله في قاعدة البيانات لديك ؟

وشكر الله لك صنيعك

تم تعديل هذه المشاركة بواسطة العصر الذهبي في 17 مايو 2011 في 16:46

#7

السلام عليكم ورحمه الله وبركاته

نعم اخي هذا هو زر الاضافة ويقوم بالحفظ في قاعدة البيانات, وهذا هو كود السي شارب


SqlDataSource1.InsertParameters["Name"].DefaultValue = (TextBox)(GridView1.FooterRow.FindControl("txtName")).Text;
SqlDataSource1.InsertParameters["Email"].DefaultValue = (TextBox)(GridView1.FooterRow.FindControl("txtEmail")).Text;
SqlDataSource1.InsertParameters["Gender"].DefaultValue = (DropDownList)(GridView1.FooterRow.FindControl("ddlGender")).SelectedValue;
SqlDataSource1.Insert();
GridView1.DataBind();

.:: Wish to become better and better ::.

#8

جزاك الله خيرا

ظهر لي خط أحمر في صفحة كود السي شارب تحت كلمة InsertParameters

Non-invocable member System.Web.UI.WebControls.SqlDataSource.InsertPrarameters can not be used a like method

وعندما فتحت مثالك وجدت في صفحة asp هذا الجزء ولم أفهم معناه وهل ضروري ؟

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
            DeleteCommand="DELETE FROM [Contacts] WHERE [ID] = @ID" 
            InsertCommand="INSERT INTO [Contacts] ([Name], [Gender], [Email]) VALUES (@Name, @Gender, @Email)" 
            SelectCommand="SELECT * FROM [Contacts]" 
            UpdateCommand="UPDATE [Contacts] SET [Name] = @Name, [Gender] = @Gender, [Email] = @Email WHERE [ID] = @ID">
            <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="Name" Type="String" />
                <asp:Parameter Name="Gender" Type="String" />
                <asp:Parameter Name="Email" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="Name" Type="String" />
                <asp:Parameter Name="Gender" Type="String" />
                <asp:Parameter Name="Email" Type="String" />
                <asp:Parameter Name="ID" Type="Int32" />
            </UpdateParameters>
        </asp:SqlDataSource>

أنا استخدم دائما الـ select ولكن وجدت هنا update ,delete لم أفهم هل هي ضرورية والـParameter ؟

وشكر الله لك

تم تعديل هذه المشاركة بواسطة العصر الذهبي في 17 مايو 2011 في 20:29

#9

هل ميثود InsertParameters مختصة بالفيجوال بيسك فقط؟

#10

السلام عليكم ورحمه الله وبركاته

عذرا اخي اخطأت في عمل ال Casting في السي شارب لأن اتعامل مع الفيجوال بيسك بكثره, قم بتعديل الكود الى


SqlDataSource1.InsertParameters["Name"].DefaultValue = (GridView1.FooterRow.FindControl("txtName") as TextBox).Text;
SqlDataSource1.InsertParameters["Email"].DefaultValue = (GridView1.FooterRow.FindControl("txtEmail") as TextBox).Text;
SqlDataSource1.InsertParameters["Gender"].DefaultValue = (GridView1.FooterRow.FindControl("ddlGender") as DropDownList).SelectedValue;
SqlDataSource1.Insert();
GridView1.DataBind();

اما بالنسبة للاوامر الباقيه يمكنك استخدامها عندما تفعل الخواص EnableDeleting, EnableEditing اما بالنسبة لل Parameter فما هو الا يمثل اي وسيط ستمرر قيمتة من او الى قاعدة البيانات

.:: Wish to become better and better ::.

#11

^ هل احتجت إلى جمل للاتصال بالقاعدة ؟

وهل Parameter ضروري كتابتها لاني لا اعلم ماهي فائدتها

واعتذر عن كثرة الازعاج

شكر الله لك

#12

هذا الخطأ الذي يظهر لي باللون الاصفر

Object reference not set to an instance of an object.

عند جملة

SqlDataSource1.InsertParameters["Name"].DefaultValue = (GridView1.FooterRow.FindControl("txtName") as TextBox).Text;

#13

السلام عليكم ورحمه الله وبركاته

اخي حسب المثال الذي ارفقه سابقا كان هناك مربع نص في ذيل ال GridView اسمه txtName تأكد فقط من وجود اداه بهذه الاسم او قم بالتغيير ..

.:: Wish to become better and better ::.

#14
العصر الذهبي كتب:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="ID" DataSourceID="SqlDataSource1" EnableModelValidation="True" 
            ShowFooter="True">
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                    ReadOnly="True" SortExpression="ID" />
                <asp:TemplateField HeaderText="Name" SortExpression="Name">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtName" runat="server" Height="22px" Width="145px"></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Gender" SortExpression="Gender">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Gender") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:DropDownList ID="ddlGender" runat="server">
                            <asp:ListItem Value="M">Male</asp:ListItem>
                            <asp:ListItem Value="F">Female</asp:ListItem>
                        </asp:DropDownList>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("Gender") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Email" SortExpression="Email">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Email") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtEmail" runat="server" Height="22px" Width="203px"></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("Email") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Action">
                    <FooterTemplate>
                        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Add" />
                    </FooterTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

من فضلك هذا كودك

هذه الأداة مااسمها حتى اقوم بادراجها ؟

تم تعديل هذه المشاركة بواسطة العصر الذهبي في 18 مايو 2011 في 01:02

#15

السلام عليكم ورحمه الله وبركاته

اخي الاداه موجوده .. طيب ارفق مشروعك المعمول بالسي شارب ليتم التعديل ..

.:: Wish to become better and better ::.

#16

هذه صفحة الاي اس بي

       <asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False"
            DataSourceID="SqlDataSource1" Height="123px" Width="229px">
            <Columns>

                     <asp:TemplateField HeaderText="dec_no">
                    <ItemTemplate>
                        <asp:Label ID="lblID" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"dec_no") %>'></asp:Label>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtID" runat="server"></asp:TextBox>
                    </FooterTemplate>
                </asp:TemplateField>


                      <asp:TemplateField HeaderText="No">
                    <ItemTemplate>
                        <asp:Label ID="lblfirstName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"No") %>'></asp:Label>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
                    </FooterTemplate>
                </asp:TemplateField>


                 <asp:TemplateField HeaderText="Load_info">
                    <ItemTemplate>
                        <asp:Label ID="lblLastName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Load_info") %>'></asp:Label>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
                    </FooterTemplate>
                </asp:TemplateField>


            </Columns>
        </asp:GridView>


        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:tableConnectionString %>" 
            SelectCommand="SELECT [dec_no], [No], [Load_info] FROM [load_info]">

              <InsertParameters>
                <asp:Parameter Name="dec_no" Type="String" />

                <asp:Parameter Name="Load_info" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>

وهذه صفحة السي شارب

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Specialized;
using System.Text;
using System.Data.SqlClient;




namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button4_Click(object sender, EventArgs e)//save
        {

            SqlDataSource1.InsertParameters["Load_info"].DefaultValue = (GridView3.FooterRow.FindControl("txtLastName") as TextBox).Text;
            SqlDataSource1.InsertParameters["dec_no"].DefaultValue = (GridView3.FooterRow.FindControl("txtID") as TextBox).Text;
            SqlDataSource1.InsertParameters["No"].DefaultValue = (GridView3.FooterRow.FindControl("txtFirstName") as TextBox).Text;
            SqlDataSource1.Insert();
            GridView3.DataBind();

            }



        protected void Button1_Click(object sender, EventArgs e)
        {
            Session["ctrl"] = Panel1;
            ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language=javascript>window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1');</script>");

        }


}
}

وجزاك الله خيرا

تم تعديل هذه المشاركة بواسطة العصر الذهبي في 18 مايو 2011 في 17:42

#17

لتوضيح الصورة أكثر اريد ان تكون القريدفيو كالمثال الذي في الصورة

وجزيت خيرا

post-232219-098555500 1305730325_thumb.j

المرفقات
abb2ea49-d2af-40fd-89e9-1ec85ce87ddd.JPG
#18

السلام عليكم ورحمه الله وبركاته

اخي يمكن ترفق مشروعك بالكامل لأن زر الحفظ مش موجود في ال html وبرضه انواع البيانات للاعمده غير معروفه لي لأنك قمت بتغيير مثال السابق!!

.:: Wish to become better and better ::.

#19

السلام عليكم

هذا الملف الذي قمت بالتجربة عليه

بالنسبة لشكل قاعدة البيانات فيوجد بها جدول واحد وهذا شكله في المرفقات بدل العمود الذي اسمه ID ، لدي اسمه RowNumber

وشكر الله لك

WebApplication1.rar

post-232219-065876600 1305735980_thumb.j

المرفقات
2.JPG

تم تعديل هذه المشاركة بواسطة العصر الذهبي في 18 مايو 2011 في 19:43

#20

السلام عليكم ورحمه الله وبركاته

اخي اولا انت لم ترفق قاعدة البيانات مع المشروع؟؟ وثانيا لم تدقق في كودي الاول, لهذا اولا في كود ال html قم باضافة امر الادراج داخل ال SqlDataSource على النحو التالي


InsertCommand="INSERT INTO [Table1] ([Column1], [Column2], [Column3]) VALUES (@Column1, @Column2, @Column3)"

ثانيا قم بتغيير كود الاضافه الى


{
TextBox txtColumn1=GridView1.FooterRow.FindControl("txtColumn1") as TextBox;
TextBox txtColumn2 = GridView1.FooterRow.FindControl("txtColumn2") as TextBox;
TextBox txtColumn3 = GridView1.FooterRow.FindControl("txtColumn3") as TextBox;
SqlDataSource1.InsertParameters["Column1"].DefaultValue = txtColumn1.Text;
SqlDataSource1.InsertParameters["Column2"].DefaultValue = txtColumn2.Text;
SqlDataSource1.InsertParameters["Column3"].DefaultValue = txtColumn3.Text;
SqlDataSource1.Insert();
GridView1.DataBind();
}
 protected void Button1_Click(object sender, EventArgs e)

وكل شيء سيشتغل 100%

.:: Wish to become better and better ::.

#21

السلام عليكم

يا أخي جزاك الله خيرا على صبرك

للأسف طبقت ما قلت لي وظهر لي نفس الخطأ وهو موجود في المرفقات

بالنسبة لقاعدة البيانات فحاولت إرفاقها لكن لم يقبل لكبر حجمها

وهي كما وصفتها لك مكونة من جدول واحد ليس به أي علاقات و العمود الذي اسمه RowNumber هو رقم تلقائي يدرج عند إضافة كل صف تلقائيا

بالنسبة لزر الإضافة أنا وضعته خارج تاق القريد فيو ، ووضعت نفس كودك الذي وضعته قبل قليل في هذا الزر، هل قد يكون هذا هو سبب المشكلة؟

وجزاك الله خيرا

1.rar

#22

السلام عليكم ورحمه الله وبركاته

اخي ارجوك ارفق المشروع كاملا مع اخر تعديل ولاتنسى قاعدة البيانات ...

.:: Wish to become better and better ::.

#23

سأبحث حالا عن مركز تحميل وأرفقها لك كاملة بإذن الله

#24

السلام عليكم

أجارك الله من نار جهنم هذا المشروع كاملا مع قاعدة البيانات والتعديلات

وجزاك الله خيرا

تم تعديل هذه المشاركة بواسطة العصر الذهبي في 18 مايو 2011 في 23:23

#25

السلام عليكم ورحمه الله وبركاته

اخي ايش المشكله المشروع مرفق معاه قاعدة بيانات اخرى فاضيه؟!! انت حابب نحل المشكله لديك لو لا؟!!

.:: Wish to become better and better ::.

مواضيع مشابهة