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

مساعدة في إعادة صياغ اكواد

بدأه خالد باشنتوف في 10 أبريل 2014 · 6 رد · 805 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عملت برنامج ب C# 2008 & sql server واريد الان تحول قاعدة البيانات من sql server الى sqlite صادفتني مشكله وهي

ان قاعدة بيانات sqlite ليس لها Stored Procedures حيث ان برنامجي يحتوي على العديد منها ولكن يحتوي على views هل

يمكن ان اكتب اكواد Stored Procedures داخل views وكيف

او بمعنى اخر

ايليكم الاكواد الاتية مطلوب إعادة صياغ ( تحويل ) الاكواد الى ما يناسب قواعد بيانات Sqlite

-----------------------------

ملاحظه الاكواد في الرد اسفل ( رقم 1 )

#2

كود sql server   Stored Procedures يحتوي على input & output

ALTER PROCEDURE GetTable2_del_t1

	(
	
	@ID_t1 int,
	@number int output
	)
AS
SELECT         @number = count(ID_t1)
	FROM            Table2
	WHERE         (ID_t1 = @ID_t1)

وكود C#

  public int GetTable2_Del_t1(int t_1ID)
        {
            int n = 0;
            SqlCommand com = new SqlCommand("GetTable2_del_t1", cn);
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.AddWithValue("@ID_t1", t_1ID);
            SqlParameter param = new SqlParameter();
            param.ParameterName = "@number";
            param.SqlDbType = SqlDbType.Int;
            param.Direction = ParameterDirection.Output;
            com.Parameters.Add(param);
            cn.Open();
            com.ExecuteNonQuery();
            cn.Close();
            n = int.Parse(com.Parameters["@number"].Value.ToString());
            return n;
        }

تم تعديل هذه المشاركة بواسطة خالد باشنتوف في 10 أبريل 2014 في 00:04

#3

السلام عليكم
اذا كانت الاكواد السابقة غيرمفهومه فهي تحمل نفس الفكر الآتيه
السابقة sql server تحتوي علىStored Procedures وانا الان اريدها بـ sqlite لا تحتوي على Stored

Procedures

كيف اعمل استعلام عن اسم شخص برقم جواله

textbox1 ادخل فيه رقم الجوال
انقر زر بحث (button)
textbox2 يعطينا اسم صاحب رقم الجوال

سي شارب + قواعد بيانات sqlite

#4

تفضل اخي العزيز

string sql=" SELECT PhoneName From Table1 WHERE number=@number";
DataTable t = new DataTable();
            using (System.Data.SQLite.SQLiteConnection con = new System.Data.SQLite.SQLiteConnection("data source=exam.db3"))
            {
                using (System.Data.SQLite.SQLiteCommand com = new System.Data.SQLite.SQLiteCommand(con))
                {
                    con.Open();    
com.Parameters.Add(new SQLiteParameter("@number",Convert.ToInt16(textbox1.String));                      
                    com.CommandText = sql;
                    com.ExecuteNonQuery();
                    DataSet ds = new DataSet();
                    SQLiteDataAdapter da = new SQLiteDataAdapter(sql, con);
                    da.Fill(ds);
                    t = ds.Tables[0];
                   textbox1.Text = t.Rows[0][0].ToString();
                    con.Close();        
                }
            }
1
#5

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

 sda.Fill(ds);

نص الخطا (SQLite error
Insufficient parameters supplied to the command)

حيث كانت صيغت الكود

 public void nn()
        {
            DataTable dt = new DataTable();
            SQLiteConnection cn = config.getconnction();
            string _sql="SELECT name FROM Table1 WHERE id_k =@ID1";
            using(SQLiteCommand cmd=new SQLiteCommand (cn))
            {
                cn.Open();
                cmd.Parameters.Add(new SQLiteParameter("@ID1", Convert.ToInt32(textBox1.Text)));
                cmd.CommandText = _sql;
                cmd.ExecuteNonQuery();
                DataSet ds = new DataSet();
                SQLiteDataAdapter sda = new SQLiteDataAdapter(_sql,cn);
                sda.Fill(ds);
                dt = ds.Tables[0];
                textBox2.Text = dt.Rows[0][0].ToString();
                cn.Close();
             
            }
        }

انا بحثت في google  وجد كود عدلت عليه نجحت في التعديل ولكني افضل الكود الذي ارسلته لانه يحتوى على Parameters تزيد قوه وامان في البرمجه أليكم الكود المعدل للفائده .
 

public void n(int d)
        {
            
           
         SQLiteConnection cn = config.getconnction();
          string s_sqlite = "SELECT name FROM Table1 WHERE id_k ="+d.ToString();
            cn.Open();
            SQLiteCommand cmd = new SQLiteCommand(s_sqlite, cn);
            
                SQLiteDataReader myr = cmd.ExecuteReader();
                if (myr.Read())
                {
                    textBox2.Text = myr.GetString(0);
                }
            else
                {
                textBox2.Text="لاتوجد بيانات";
                }
            cn.Close();
               
                    }

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

SELECT @name=name FROM Table1 WHERE id_k =@ID1
#6
خالد باشنتوف كتب:

 

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

 sda.Fill(ds);

نص الخطا (SQLite error

Insufficient parameters supplied to the command)

حيث كانت صيغت الكود

 public void nn()
        {
            DataTable dt = new DataTable();
            SQLiteConnection cn = config.getconnction();
            string _sql="SELECT name FROM Table1 WHERE id_k =@ID1";
            using(SQLiteCommand cmd=new SQLiteCommand (cn))
            {
                cn.Open();
                cmd.Parameters.Add(new SQLiteParameter("@ID1", Convert.ToInt32(textBox1.Text)));
                cmd.CommandText = _sql;
                cmd.ExecuteNonQuery();
                DataSet ds = new DataSet();
                SQLiteDataAdapter sda = new SQLiteDataAdapter(_sql,cn);
                sda.Fill(ds);
                dt = ds.Tables[0];
                textBox2.Text = dt.Rows[0][0].ToString();
                cn.Close();
             
            }
        }

انا بحثت في google  وجد كود عدلت عليه نجحت في التعديل ولكني افضل الكود الذي ارسلته لانه يحتوى على Parameters تزيد قوه وامان في البرمجه أليكم الكود المعدل للفائده .

 

public void n(int d)
        {
            
           
         SQLiteConnection cn = config.getconnction();
          string s_sqlite = "SELECT name FROM Table1 WHERE id_k ="+d.ToString();
            cn.Open();
            SQLiteCommand cmd = new SQLiteCommand(s_sqlite, cn);
            
                SQLiteDataReader myr = cmd.ExecuteReader();
                if (myr.Read())
                {
                    textBox2.Text = myr.GetString(0);
                }
            else
                {
                textBox2.Text="لاتوجد بيانات";
                }
            cn.Close();
               
                    }

اخي SAAD12 حاول التعرف على الخطا في الكود السابق جزاك الله خير

وياريت لو بتكون جملت الاستعلام بهذه الطريقة لك الاختيار

SELECT @name=name FROM Table1 WHERE id_k =@ID1

ياريت ترسل مشروعك بدون بيانات لأني اشوف الكود صحيح ومافيه غلط

مع تحياتي

#7

هذا هو المشروع (يحتوى على الخطأ) الذي انفذ عليه الاكواد ثم انقلها الى مشروعي

 

اسف على التأخير - بسبب ضعف الانترنت

 

مرفوع على مركز الخليج

http://www.gulfup.net/do.php?id=432358

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

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

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

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

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