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

مشكلة فى تطبيق عملية إستخدام البروسيجر لحفظ الخبر من أكثر من كنترول

بدأه زخارياس في 11 أبريل 2011 · 11 رد · 977 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

1- صممت صفحة إضافة خبر وهى كالتالى :

post-207539-067457500 1302542512_thumb.j

2- صممت الجدول الخاص بإضافة الخبر كالتالى :

post-207539-027778600 1302542531_thumb.j

3 - قمت بعمل البروسيجر الخاص بالإضافة والتعديل فى نفس الوقت كالتالى :

create PROCEDURE [dbo].[AddEditNews] 

(
	@id  int,
	@title nvarchar (100),
   	@sum  nvarchar (500),
	@details  ntext,
	@categoryid int,
	@InHome bit,
	@IsMain bit,
	@Image nvarchar (255)

)
As
if (@id=-1)  

  INSERT INTO dbo.News
	(Title,[Sum],Details,Date,CategoryID,InHome,IsMain,[Image])
  VALUES   
	(@title,@sum,@details,getDate(),@categoryid,@InHome,@IsMain,@Image)

else

update dbo.News set 
Title=@title,[Sum]=@sum,Details=@details,CategoryID=@categoryid,InHome=@InHome,IsMain=@IsMain,[Image]=isnull(@Image,[Image])
where ID=@id

4- قمت بعمل داتا اكسس فى فولدر الكود أبليكشن وعمل دالة إضافة وتعديل الأخبار وهى كالتالى :

public class DataAccess
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
	public DataAccess()
	{
        conn.Open();
    }
    public void Closeconn()
    {
        conn.Close();
    }

    public int AddEditNews(string id,string title, string sum, string details, string cid, bool ishome, bool ismain, string image)
    {
        SqlCommand cmd = new SqlCommand("AddEditNews", conn);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@title",title);
        cmd.Parameters.AddWithValue("@sum",sum);
        cmd.Parameters.AddWithValue("@details",details);
        cmd.Parameters.AddWithValue("@cid",cid);
        cmd.Parameters.AddWithValue("@ishome",ishome);
        cmd.Parameters.AddWithValue("@ismain",ismain);
        cmd.Parameters.AddWithValue("@image",image);
        cmd.Parameters.AddWithValue("@id", id);

        return cmd.ExecuteNonQuery();
    }

5 - قمت بتعبئة الدروب داونليست بإستدعاء البروسيجر الخاص بعمل سيليكت لكل تصنيفات الأخبار وهى كالتالى فى البيج لوود :

public partial class Admin_TestAddNews : PageDataAccess
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Title = "لوحة التحكم | إضافة خبر جديد";
        if (!IsPostBack)
        {
            DDLCategories.DataSource = DA.GetAllCategory();
            DDLCategories.DataBind();
            DDLCategories.Items.Insert(0, "إختر التصنيف");
        }

    }

المطلوب فقط الكود الذى يكون تحت زر الإضافة لعمل فحص على الملف الذى يتم إختياره إذا كان صورة أم لا وإذا تحقق ذلك تتم عملية الإضافة بنجاح .

ارجو من لديه المساعده يتفضل ومع العلم انى حاولت أكثر من مرة وبحثت اكثر من مرة فى كل الموضوعات وكنت اجد موضوع حفظ مسار الصورة وكان يعمل لكن عند إضافة باقى الكنترولز كان لا يعمل غير ذلك أنا أريد الإستفادة من الداتا اكسس والبروسيجر فى كل العمليات وهذا الموضوع تطبيق لشروحات الأستاذ احمد بركات ولكن أنا لا أريد اخزن الصورة فى قاعدة البيانات ولكن فقط المسار الخاص بها . أشكركم

المرفقات
AddNews.jpgNewsTable.jpg
#2

اخي العزيز ياريت ترفع المشروع علشان بس كده انا مش هعرف اظبط الكود ارفع المشروع واعرفلك الخطأ فين

Technical  Skills

  • Database
  • Microsoft SQL Server 2000/2005/2008 .
  • ADO.NET .
  • LINQ - Entity Framework
  • Oracle SQL 10G .
  • MYSQL.
  • Microsoft Access .

 

  • Web Language
  • Html5.
  • CSS3.
  • JavaScript-JQuery-Ajax
  • Web Services.
  • ASP.Net 2 , 3.5 , 4 .
  • ASP.NET MVC4
  • DevExpress 
  • Telerik
  • Php

 

  • Programming Language
  • Microsoft Visual Studio 2005 - 2008 - 2010 - 2012 
  • 4 , Microsoft C#.Net 2 , 3.5 .
  • Microsoft VB.NET.

 

 

 

Certifications

  1. University Certificate  .
  2. Deutsch A1 , A2 Certificate .
  3. Microsoft .NET Framework 2.0 - Web-based Client Development         
  4. Mastering PHP & MySQL

 

 

ERP Systems

  1. MSales
  2. Infinty

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

للتواصل

Email: ideal_male67@yahoo.com

Mobile : +201008265792

With My Best Wishes
Khaled Harby

-----------------------------------------------------------
اخر مواضيعي
من هنا

#3

أخى الكريم مرفق لك الصفحات وقاعدة البيانات , أشكرك على إهتمامك

News.rar

#4

من فضلكم اللى عنده اى نموذج لعملية الحفظ واخذ البيانات من أكثر من كنترول يرفع الملف بعتقد ان الموضوع معاكوا سهل جداً يعنى ياخد القيم من TextBox _ RadioButtonList _ CheckBox _ DrobDownList _ FileUpload

#5

اخي العزيز

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

الكود ده تبع شرح لفيديو مشروع المهم

انت ليه تحفظ الصورة Binary في الداتابيز وتزحم الداتابيز ما تخلي تحفظ المسار علي في الداتابيز والصورة علي السيرفر حتي احسن للمستخدم في تحميل الصفحة

Technical  Skills

  • Database
  • Microsoft SQL Server 2000/2005/2008 .
  • ADO.NET .
  • LINQ - Entity Framework
  • Oracle SQL 10G .
  • MYSQL.
  • Microsoft Access .

 

  • Web Language
  • Html5.
  • CSS3.
  • JavaScript-JQuery-Ajax
  • Web Services.
  • ASP.Net 2 , 3.5 , 4 .
  • ASP.NET MVC4
  • DevExpress 
  • Telerik
  • Php

 

  • Programming Language
  • Microsoft Visual Studio 2005 - 2008 - 2010 - 2012 
  • 4 , Microsoft C#.Net 2 , 3.5 .
  • Microsoft VB.NET.

 

 

 

Certifications

  1. University Certificate  .
  2. Deutsch A1 , A2 Certificate .
  3. Microsoft .NET Framework 2.0 - Web-based Client Development         
  4. Mastering PHP & MySQL

 

 

ERP Systems

  1. MSales
  2. Infinty

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

للتواصل

Email: ideal_male67@yahoo.com

Mobile : +201008265792

With My Best Wishes
Khaled Harby

-----------------------------------------------------------
اخر مواضيعي
من هنا

#6

اخى الكريم انا فعلاً عايز احفظ الصور فى ملفات واحفظ المسار فى الداتا بيس والمشكلة انه مع باقى الكنترولز الموجوده ما بيمشى الحال واللى طلبته انا لو فى حد عنده عملية الحفظ والتعديل على اى فورم سابق ومع الفورم كمان الصورة أكون شاكر ولهلا ما فى حد جاوبنى او أرشدنى

#7

هل لا يوجد احد سبق له التعامل مع موضوعى ؟؟؟

#8

كود حفظ مسار الصورة على قاعدة البيانات ..

Protected Sub btnAddToCategory_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddToCategory.Click
        'Try
        Dim strGuid As String = ""
        Dim strPicExtension As String = ""
        Dim strFileName As String = ""
        Dim DateAdd As String = DateTime.Now

        '   Firstly upload the picture associated with the news
        If PhotoUpload.HasFile Then
            '   Constructs the picture extension
            strGuid = fnGuid()
            strPicExtension = fnGetPictureExtension(PhotoUpload.FileName)
            strFileName = strGuid & strPicExtension

            '   Add picture to folder
            subAddNewPicture(PhotoUpload, strFileName, "NewsImages")

            '   Add the record to the database
            UpdateGallery(txtTitle.Text, strFileName, txtMemo.Text.Trim(), DateAdd)

            lblUploadMessage.Text = "تم تحميل  الخبر بنجاح .."
            Response.AddHeader("REFRESH", "2;URL=" + ResolveUrl("CNews.aspx"))
        Else
            lblUploadMessage.Text = "اختار صورة للخبر .."
        End If

        lblUploadMessage.Visible = True
        ' Catch ex As Exception
        'Throw ex
        '  End Try
    End Sub

 Private Sub UpdateGallery(ByVal txtTitle As String, ByVal strFileName As String, ByVal strMemo As String, ByVal DateAdd As String)
        '   Variables declaration
        Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("myConnectionString").ToString()
        Dim sqlConn As New SqlConnection(strConnString)
        Dim sqlcmd As New SqlCommand()

        '   Building the query
        '        Dim sqlQuery_Photo As String = "INSERT INTO [news] VALUES ('" & txtTitle & "', '~/NewsImages/' +'" & strFileName & "', '" & strMemo & "','" & DateAdd & "')"

        Dim sqlQuery_Photo As String = "INSERT INTO news(Title,path,Description,DateAdd) VALUES ('{0}', '~/NewsImages/' +'{1}', '{2}','{3}')"

        sqlQuery_Photo = sqlQuery_Photo.Replace("{0}", txtTitle)
        sqlQuery_Photo = sqlQuery_Photo.Replace("{1}", strFileName)
        sqlQuery_Photo = sqlQuery_Photo.Replace("{2}", strMemo)
        sqlQuery_Photo = sqlQuery_Photo.Replace("{3}", DateAdd)


        '   Retrieving search result
        sqlConn.Open()
        sqlcmd.Connection = sqlConn

        '   Adding records to table
        sqlcmd.CommandText = sqlQuery_Photo
        sqlcmd.ExecuteNonQuery()

        sqlConn.Close()
    End Sub
1

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#9
//ننشأ مربع نص مثلا 
        //TextBox1 
        //لإدخال إسم للصورة والأفضل إدخال إسم إنكليزي وعدم تركها بإسمها الأصلي لأنه ربما يكون عربي أو طويل وعندها ربما يعمل مشاكل
        //تنشأ مجلد لحفظ الصور فيه وتضعه في واجهة الموقع وتسمه
            //Images
        //وتضيف عنصر صورة إلى الصفحة لإظهارها مثلاً
        //    Image1

     //أولا نخزن مسار مجلد الصور مع رابط الموقع في متغير
        string savePath = Server.MapPath("Images");

        //ننشأ متغيرين لتخزين إسم الملف الحالي والإسم الجديد
        string fileName = "", newfileName = "";

        //ننشأ متغير لتخزين صيغة الصورة
        string post = "";

        //إذا كانت الأداة تحتوي على ملف عندها طبق مايلي
        if (FileUpload1.HasFile)
        {
            //الأفضل في الحالة الإفتراضية جعل أداة الصورة مخفية حتى لا يظهر مكانها فارغا وإظهاره عندما نريد إدخال صورة
            Image1.Visible = true;

            //نخزن في المتحول هذا إسم الصورة الأصلي
            fileName = FileUpload1.FileName;

            //نقطع صيغة ملف الصورة من آخر الإسم الأصلي لها ونخزنه في هذا المتحول
            post = fileName.Substring(fileName.LastIndexOf(".") + 1);

            //بعد أن نكون أدخلنا إسم الصورة الذي ستسمى به الصورة في مربع النص نضيف له الصيغة ونخزنه في هذا المتحول
            newfileName = this.TextBox1.Text + "." + post;

            //في هذا المتحول يتم تجميع إسم الصورة مع المسار الكامل 
            savePath = savePath + "\\" + newfileName;

            //تعليمة الحفظ
            FileUpload1.SaveAs(savePath);

            // إظهار الإسم الجديد في مربع نص جديد
            TextBox2.Text = newfileName;

            //نعطي الآن عنصر الصورة المسار الكامل للصورة حتى تظهر به 
            this.Image1.ImageUrl = "Images\\" + newfileName;

            //الصورة أصبحت في مجلد الصور مع ملفات الموقع 
                //ثم بعدين تضيف لقاعدة البيانات النص الذي يكون في
                    //TextBox2

تم تعديل هذه المشاركة بواسطة KV2010 في 13 أبريل 2011 في 04:16

الله أكبر الله أكبر الله أكبر لآ إله إلا الله الله أكبر الله أكبر ولله الحمد

#10

اشكر واقدر كل من قام بالرد وكلا العمليتين ناجحين لكن انا أريد مع حفظ مسار الصورة ايضاً احفظ معلومات أخرى ومن كنترولز مختلفة زى ما وضحت سابقاً ثم انى أستغرب صراحة انا لا يوجد اى عضو أشار او أرشدنى بالإبتعاد على الستوريد بروسيجر وأحسست انه يوجد شيئ غامض ولا أجد رد واحد يعطينى إلمام كامل بالموضوع !!!!!!!!!!!!!!!!

#11

الـ Stored Procedure أكثر سرعة في التنفيذ وأكثر أمانا , ولا يوجد غموض ولكن كثرة الأسئلة تنسي يعضها بعض

والكود اللي أرفقته في الرد 8# يوضح حفظ الرابط وحفظ معلومات أخرى من كنترولز أخرى .. واضحه جدا في الكود

كيف لم تنتبه لها

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#12

عفواً اخى الكريم مبرمج القاعده , انا مانتبهت فعلاً لكن كان بتامل انه حد يحل الموضوع على اساس الكنترولز اللى موجوده بالصورة المرفقة وما فى

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…