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

كيف استخدم الكود في برنامجي

بدأه sidi100 في 31 أكتوبر 2009 · 5 رد · 627 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

ياجماعة اذ كان ممكن فيه حد يشرحنا

كيفية التعامل مع وضع الاكواد في البرنامج بشكل صحيح

الكثير من قديحصل علي كود في سي الشارب لبرنامج معين ويجد صعوبة في التعامل مع الكود لوضع الكود في المشروع ابتاعه

ولو فيه شرح مثال ايكون احسن

#2

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

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

تحياتي...

#3
محمد رضى كتب:
و عليكم السلام و رحمة الله تعالى و بركاته,,,

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

تحياتي...

يا اخي ما أقصده لو فيه عندك اخ مبتدئ مثلا زي حالاتي وحصل علي كود برمجي سأضع لك الكود مثلا لبرنامج

شو هي الخطوات لتي يجب ان يسلك الخطوة الاولي كذا ..........حتي الخطوة الاخيرة

سأضع هذا الكود لتطبيق عليه

  using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Net;
using System.IO;
using System.Net.Mail;
using System.Diagnostics;
using System.Web;

namespace Freedom
{
  namespace SendSMS
  {
	// Class SMSProcess, Used within windows service to send SMS messages from database to AQL 
	// Developed by Garry Pritchard @ Freedom Finance, March 2009 
	// Note:= Needs the Assebley reference System.Web adding to the project and the 
	// using System.web, for the HttpUtility.UrlEncode

	public class SMSProcess
	{
	  private string _SMS_ID = "";
	  private string _SMS_MSG = "";
	  private string _SMS_MOBILE = "";
	  private string _DBConnection = global::SendSMS.SMSProcess.Default.DBConnecttion;
	  private string _SMSUser = global::SendSMS.SMSProcess.Default.SMSUser;
	  private string _SMSPwd = global::SendSMS.SMSProcess.Default.SMSPwd;
	  private string _EMailSvr = global::SendSMS.SMSProcess.Default.EmailServer;

	  public void ProcessSMS()
	  {
		SqlCommand sqlCmd = null;
		SqlConnection sqlCon = null;
		SqlDataReader sqlRead = null;

		// Check to see if we have any new records to process:
		try
		{
		  sqlCon = new SqlConnection(this._DBConnection);

		  sqlCon.Open();

		  sqlCmd = new SqlCommand("SMS_GET_RECORDS", sqlCon);
		  sqlCmd.CommandType = System.Data.CommandType.StoredProcedure;

		  sqlRead = sqlCmd.ExecuteReader();

		  while (sqlRead.Read())
		  {
			this._SMS_ID = sqlRead["TxtID"].ToString();
			this._SMS_MSG = sqlRead["TxtMsg"].ToString();
			this._SMS_MOBILE = sqlRead["Mobile"].ToString();
			SendMessage();
		  }
		  sqlRead.Close();
		}
		catch (Exception e)
		{
		 LogError("Error in ProcessSMS with message := " + e.Message + " " + e.InnerException);
		}
		finally
		{
		  sqlCon.Close();
		  sqlCmd.Dispose();
		}
	  }

	  private void UpdateRecord(string sAQLMSG)
	  {
		try
		{
		// Update the record within the db with the response from AQL

		SqlConnection sqlCon = new SqlConnection(this._DBConnection);
		sqlCon.Open();

		SqlCommand sqlCmd = new SqlCommand("SMS_UPDATE_RECORD", sqlCon);
		sqlCmd.CommandType = System.Data.CommandType.StoredProcedure;

		SqlParameter pID = new SqlParameter();
		pID.ParameterName = "@ID";
		pID.Value = Convert.ToInt32(this._SMS_ID);
		pID.DbType = System.Data.DbType.Int32;
		sqlCmd.Parameters.Add(pID);

		SqlParameter pCode = new SqlParameter();
		SqlParameter pMsg = new SqlParameter();

		switch (sAQLMSG)
		{
		  case "AQSMS-NOAUTHDETAILS":
			pCode.ParameterName = "@ProcessCode";
			pCode.Value = "E";
			pCode.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pCode);

			pMsg.ParameterName = "@Msg";
			pMsg.Value = "AQSMS-NOAUTHDETAILS";
			pMsg.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pMsg);
			break;
		  case "AQSMS-AUTHERROR":
			pCode.ParameterName = "@ProcessCode";
			pCode.Value = "E";
			pCode.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pCode);

			pMsg.ParameterName = "@Msg";
			pMsg.Value = "AQSMS-NOAUTHDETAILS";
			pMsg.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pMsg);
			break;
		  case "AQSMS-NOCREDIT":
			pCode.ParameterName = "@ProcessCode";
			pCode.Value = "E";
			pCode.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pCode);

			pMsg.ParameterName = "@Msg";
			pMsg.Value = "AQSMS-NOCREDIT";
			pMsg.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pMsg);
			break;
		  case "AQSMS-OK":
			pCode.ParameterName = "@ProcessCode";
			pCode.Value = "Y";
			pCode.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pCode);

			pMsg.ParameterName = "@Msg";
			pMsg.Value = "AQSMS-OK";
			pMsg.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pMsg);
			break;
		  case "AQSMS-NOMSG":
			pCode.ParameterName = "@ProcessCode";
			pCode.Value = "Y";
			pCode.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pCode);

			pMsg.ParameterName = "@Msg";
			pMsg.Value = "AQSMS-NOMSG";
			pMsg.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pMsg);
			break;
		  case "AQSMS-CREDIT":
			pCode.ParameterName = "@ProcessCode";
			pCode.Value = "Y";
			pCode.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pCode);

			pMsg.ParameterName = "@Msg";
			pMsg.Value = "AQSMS-CREDIT";
			pMsg.DbType = System.Data.DbType.String;
			sqlCmd.Parameters.Add(pMsg);
			break;
		}

		sqlCmd.ExecuteNonQuery();
		sqlCmd.Dispose();
		sqlCon.Close();
	  }

	  catch (Exception e)
	  {
		LogError("Error in UpdateRecord with message := " + e.Message + " " + e.InnerException);
	  }
	}

	private void SendMessage()
	{
	  try
	  {
		string sMsg = this._SMS_MSG;
		sMsg = System.Web.HttpUtility.UrlEncode(sMsg);

		// send the message to aql:
		HttpWebRequest req = (HttpWebRequest)WebRequest.Create
							   ("http://gw1.aql.com/sms/postmsg.php?to_num=" + this._SMS_MOBILE 
								 +"&message=" + sMsg + "&flash=0&originator=MYCOMPANY&username=" 
								 +this._SMSUser + "&password=" + this._SMSPwd);

		req.Method = "POST";
		req.KeepAlive = false;
		req.ContentType = "application/x-www-form-urlencoded";
		// Get the request stream.
		// Get the response.
		WebResponse response = req.GetResponse();
		// Get the stream containing content returned by the server.
		Stream dataStream = response.GetResponseStream();
		// Open the stream using a StreamReader for easy access.
		StreamReader reader = new StreamReader(dataStream);
		// Read the content.
		string responseFromServer = reader.ReadToEnd();
		UpdateRecord(responseFromServer.ToUpper());

		// Clean up the streams.
		reader.Close();
		dataStream.Close();
		response.Close();
	  }
	  catch (Exception e)
	  {
		LogError("Error in SendMessage with message := " + e.Message + " " + e.InnerException);
	  }
	}

	private void LogError(string sMessage)
	{
	  // TODO SEND & LOG Error Msg
	  System.Net.Mail.MailMessage oMail = new System.Net.Mail.MailMessage();
	  oMail.To.Add(new MailAddress("support@mycompany.com"));
	  oMail.From = new MailAddress("myemail@mycompany.com");
	  oMail.Subject = "SendSMS App Error:";
	  oMail.Body = sMessage;

	  SmtpClient oSMTP = new SmtpClient();
	  oSMTP.Host = this._EMailSvr;
	  oSMTP.Send(oMail);

	  EventLog.WriteEntry("Send SMS Error", sMessage);
	}
  }
}
}

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

#4

أخي الكريم, هذا كود لفئة SMSProcess تستعمل لإرسال رسائل SMS محفوظة مسبقا داخل قاعدة بيانات عبر موقع انترنت. ProcessSMS دالة تقوم بقراءة رسائل SMS مسجلة مسبقا على قاعدة البيانات. تقوم بالمناداة على الدالة SendMessage لإرسال رسالة SMS الموجودة على التسجيل الحالي المقروء عن طريق DataReader. إذا نجحت عملية الإرسال يتم تحديث تسجيل رسالة SMS على قاعدة البيانات بجواب الخادم عبر المناداة على الدالة UpdateRecord, في حالة فشل العملية يتم ارسال بريد إلكتروني لإعلام المرسل لرسالة SMS بفشل العملية عبر المناداة على الدالة LogError.

تحياتي...

#5

مشكور يااخي علي الردود الطيبة

كيف حالك إن شاء الله دائمــاً بخير ؟

يبدو انك لم تفهم سوالي, قصدي ليس هو شرح الكود

هو ماهي الخطوات لتي احتاجها بالتسلسل قبل مرحلة الكودينغ حتي تنفيذ البرنامج د

شكرا لك علي التعاون

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