نمایش نتایج 1 تا 13 از 13

نام تاپیک: مشکل در نوشتن کد جستجو در دیتابیس

  1. #1
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    Question مشکل در نوشتن کد جستجو در دیتابیس

    درود دوستان گرامی

    برنامه من 3 لایه هست، برای برنامه ام یک جستجوی ساده قرار دادم ولی توی نوشتن کدش به مشکل بر خوردم، برای برنامه قبلیم که برنامه ای ساده تر بود، کدهارو پشت هر فرم می نوشتم (بشدت مبتدی تر از الان بودم) برای مثال جستجو را به شکل زیر نوشتم و کار می کردم ولی در برنامه جدید کمی به مشکل بر خوردم
    لطفا اگر امکانش هست کدم را اصلاح کنید
    سپاس از همه اساتید عزیز

    کدهای قدیمی من
    public void SearchLastNameFromDatabase()  //جستجو اعضا بر اساس نام خانوادگی
    {
    SqlCeConnection myConnection = new SqlCeConnection();
    myConnection.ConnectionString = @"Data Source=K:\Programs\DateBases\GhazaiiDB.sdf";

    SqlCeCommand myCommand = new SqlCeCommand();
    myCommand.Connection = myConnection;
    myCommand.CommandText = "Select * from [User] where LastName Like @LastName";
    myCommand.Parameters.AddWithValue("@LastName", "%" + txtSearchParameters.Text + "%");

    DataTable myDataTable = new DataTable();
    SqlCeDataAdapter myDataAdapter = new SqlCeDataAdapter();
    myDataAdapter.SelectCommand = myCommand;
    myDataAdapter.Fill(myDataTable);

    dataGridView1.DataSource = myDataTable;
    }



    کدهای جدید که باید اصلاح بشوند
    public bool SearchLastNameFromDatabase()  //جستجو اعضا بر اساس نام خانوادگی
    {
    string command = "Select * from [Contact] where [LastName] Like @LastName";

    List<SqlCeParameter> parametersList = new List<SqlCeParameter>();
    var LastNameParameter = new SqlCeParameter("@LastName", "%" + this.LastName + "%");

    parametersList.Add(LastNameParameter);

    var db = new DataAcsess.DatabaseManager();
    var result = db.ExecuteScalar(command, parametersList);
    if (result == 1)
    {
    return true;
    }
    else
    return false;
    }


    ولی میدونم کد رو اشتباه نوشتم، یکی از دوستان گفت که به جای ExecuteScalar از ExecuteNonequery استفاده کنید ولی متوجه نشدم باید چی کنم

    ویژال استودیو
    زبان: سی شارپ
    دیتابیس: اس کیو ال کامپکت

  2. #2

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    سلام. من از این روش استفاده می کنم. یک لایه برای اتصال به پایگاه داده که فقط یک کلاس Connection داره. و یک لایه برای ارسال دستورات SQL و سایر دستورات مورد نیاز برنامه که از طریق لایه ی اتصال به پایگاه داده وصل می شه، در لایه ی اتصال کدهای دیگر نمی نویسم چرا که می توان فقط با تغییر StringConnection در سایر پروژه ها هم استفاده کرد.
    کد لایه ی اتصال:

    using System;using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using System.Data.SqlClient;


    namespace Data_Access
    {
    public class Connection
    {
    SqlConnection con;
    SqlCommand cmd;
    SqlDataAdapter sda;
    DataTable dt;


    public Connection()
    {
    con = new SqlConnection();
    cmd = new SqlCommand();
    sda = new SqlDataAdapter();
    dt = new DataTable();


    }


    public void link()
    {
    con.ConnectionString= "Data Source=.;Initial Catalog=Library_mgr;Integrated Security=True";
    con.Open();
    }


    public void unlink()
    {
    con.Close();


    }


    public void command_line(string query)
    {
    cmd.CommandText = query;
    cmd.Connection = con;
    cmd.ExecuteNonQuery();


    }


    public DataTable select_command(string query)
    {
    cmd.CommandText = query;
    cmd.Connection = con;
    sda = new SqlDataAdapter(cmd);
    sda.Fill(dt);
    return dt;




    }


    }
    //end of class.


    }




    در لایه ی دیگر یا businessLayer :


    using System;using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using Data_Access;


    namespace business_Logic.bl_users
    {
    public class bl_users: Connection
    {
    public string un, pass, email,job,status, dt;


    public void add_users()
    {
    base.link();
    string query = "insert into tbl_users(un,pass,email,job,status)values(N'{0}',N '{1}',N'{2}',N'{3}',N'{4}')";
    query = string.Format(query, un, pass, email, job, status);
    base.command_line(query);
    base.unlink();


    }
    //end of adding users.


    public void update_users()
    {
    base.link();
    string query = "update tbl_users set pass=N'{0}' , email=N'{1}' , job=N'{2}' , status=N'{3}' where un=N'{4}'";
    query = string.Format(query, pass, email,job, status, un);
    base.select_command(query);
    base.unlink();


    }
    //end of updating users.




    public void delete_users()
    {
    base.link();
    string query = "delete tbl_users where un=N'{0}'";
    query = string.Format(query, un);
    base.command_line(query);
    base.unlink();


    }
    //end of deleting users.




    public DataTable select_users()
    {
    base.link();
    string query = "select un,pass,job,email,status,dt from tbl_users";
    DataTable dt = base.select_command(query);
    base.unlink();
    return dt;


    }
    //end of selecting users.


    public DataTable check_existing_users()
    {
    base.link();
    string query = "select un from tbl_users where un=N'{0}'";
    query = string.Format(query, un);
    DataTable dt = base.select_command(query);
    base.unlink();
    return dt;


    }
    //end of checking existing users.


    public DataTable select_user_by_user()
    {
    base.link();
    string query = "select un,pass,job,email,status,dt from tbl_users where un like N'{0}%'";
    query = string.Format(query, un);
    DataTable dt = base.select_command(query);
    base.unlink();
    return dt;


    }
    //end of selecting user by user name.


    public DataTable select_user_by_job()
    {
    base.link();
    string query = "select un,pass,job,email,status,dt from tbl_users where job=N'{0}'";
    query = string.Format(query, job);
    DataTable dt = select_command(query);
    base.unlink();
    return dt;
    }
    //end of selecting user by job style.


    public DataTable select_user_by_status()
    {
    base.link();
    string query = "select un,pass,job,email,status from tbl_users where status=N'{0}'";
    query = string.Format(query, status);
    DataTable dt = select_command(query);
    base.unlink();
    return dt;
    }
    // selecting users using status if acctive or not.


    public DataTable select_user_by_email()
    {
    base.link();
    string query = "select un,pass,job,email,status,dt from tbl_users where email like N'{0%}'";
    query = string.Format(query, email);
    DataTable dt = base.select_command(query);
    base.unlink();
    return dt;


    }
    //loading user by email like.


    public DataTable select_users_names()
    {
    base.link();
    string query = "select un from tbl_users";
    DataTable dt = base.select_command(query);
    base.unlink();
    return dt;


    }
    //end of selecting.




    public DataTable select_user_by_username()
    {
    base.link();
    string query = "select un,pass,job,email,status from tbl_users where un=N'{0}'";
    query = string.Format(query, un);
    DataTable dt = base.select_command(query);
    base.unlink();
    return dt;


    }
    //end of selecting user by usernames.






    }
    //end of class.


    }




    امید است که کارامد باشد برای شما.
    موفق باشید.

  3. #3
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    سپاس که پاسخ دادید
    شما بسیار حرفه ای کار کردید ولی متاسفانه من هنوز دانش برنامه ام به اندازه شما نیست و امکان استفاده از کد شما را ندارم، اگر امکانش هست کدی که ارسال کرده ام را ویرایش کنید ممنون میشوم

  4. #4

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    نقل قول نوشته شده توسط booysusa مشاهده تاپیک
    درود دوستان گرامی

    برنامه من 3 لایه هست، برای برنامه ام یک جستجوی ساده قرار دادم ولی توی نوشتن کدش به مشکل بر خوردم، برای برنامه قبلیم که برنامه ای ساده تر بود، کدهارو پشت هر فرم می نوشتم (بشدت مبتدی تر از الان بودم) برای مثال جستجو را به شکل زیر نوشتم و کار می کردم ولی در برنامه جدید کمی به مشکل بر خوردم
    لطفا اگر امکانش هست کدم را اصلاح کنید
    سپاس از همه اساتید عزیز

    کدهای قدیمی من
    public void SearchLastNameFromDatabase()  //جستجو اعضا بر اساس نام خانوادگی
    {
    SqlCeConnection myConnection = new SqlCeConnection();
    myConnection.ConnectionString = @"Data Source=K:\Programs\DateBases\GhazaiiDB.sdf";

    SqlCeCommand myCommand = new SqlCeCommand();
    myCommand.Connection = myConnection;
    myCommand.CommandText = "Select * from [User] where LastName Like @LastName";
    myCommand.Parameters.AddWithValue("@LastName", "%" + txtSearchParameters.Text + "%");

    DataTable myDataTable = new DataTable();
    SqlCeDataAdapter myDataAdapter = new SqlCeDataAdapter();
    myDataAdapter.SelectCommand = myCommand;
    myDataAdapter.Fill(myDataTable);

    dataGridView1.DataSource = myDataTable;
    }



    کدهای جدید که باید اصلاح بشوند
    public bool SearchLastNameFromDatabase()  //جستجو اعضا بر اساس نام خانوادگی
    {
    string command = "Select * from [Contact] where [LastName] Like @LastName";

    List<SqlCeParameter> parametersList = new List<SqlCeParameter>();
    var LastNameParameter = new SqlCeParameter("@LastName", "%" + this.LastName + "%");

    parametersList.Add(LastNameParameter);

    var db = new DataAcsess.DatabaseManager();
    var result = db.ExecuteScalar(command, parametersList);
    if (result == 1)
    {
    return true;
    }
    else
    return false;
    }


    ولی میدونم کد رو اشتباه نوشتم، یکی از دوستان گفت که به جای ExecuteScalar از ExecuteNonequery استفاده کنید ولی متوجه نشدم باید چی کنم

    ویژال استودیو
    زبان: سی شارپ
    دیتابیس: اس کیو ال کامپکت
    برنامه رو تریس کن .
    یه بریک پوینت بزار .
    ببین چه کوئری سمت SQL میره .
    همون کوئری رو تویه SQL اجرا کن .
    احتمالا مشکل از تک کوتیشن باشه .

  5. #5
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    برنامه رو تریس کن .
    یه بریک پوینت بزار .
    ببین چه کوئری سمت SQL میره .
    همون کوئری رو تویه SQL اجرا کن .
    احتمالا مشکل از تک کوتیشن باشه .
    سپاسگزارم ولی من کد رو میخوام

  6. #6
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    کدش رو به لطف و کمک یکی از اساتید نوشتیم
    سپاس از همگی که وقت گذاشتن و این پست را مطالعه کردند

    کد را می نویسم شاید روزی به درد کسی خورد
    //DataAccess:
    public DataTable SearchData(string command, List<SqlCeParameter> parameters)
    {
    SqlCeConnection myConnection = new SqlCeConnection();
    myConnection.ConnectionString = connectionString;
    SqlCeCommand myCommand = new SqlCeCommand();
    myCommand.Connection = myConnection;
    myCommand.CommandText = command;
    foreach (SqlCeParameter param in parameters)
    {
    myCommand.Parameters.Add(param);
    }
    DataTable result = new DataTable();
    SqlCeDataAdapter myDataAdapter = new SqlCeDataAdapter();
    myDataAdapter.SelectCommand = myCommand;

    try
    {
    myDataAdapter.Fill(result);
    return result;
    }
    catch
    {
    return null;
    }
    }

    //User:
    public List<User> Search(string SearchKey)
    {
    string command = "Select * from [User] where [LastName] Like @LastName";
    List<SqlCeParameter> parametersList = new List<SqlCeParameter>();
    parametersList.Add(new SqlCeParameter("@LastName", SearchKey));

    var db = new DataAccess.DatabaseManager();
    var result = db.SearchData(command, parametersList);

    List<User> lstResult = new List<User>();
    foreach (DataRow r in result.Rows)
    {
    User user = new User();
    user.ID = Convert.ToInt64(r["ID"]);
    user.FirstName = r["FirstName"].ToString();
    user.LastName = r["LastName"].ToString();
    user.Username = r["Username"].ToString();
    user.Password = r["Password"].ToString();

    lstResult.Add(user);
    }

    return lstResult;
    }

  7. #7

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    چرا خودتون رو اذیت میکنید و درگیر این همه کد و پیچیدگی میکنید؟ بهتره از انتیتی فریمورک استفاده کنید تا دیگه این مشکلات رو نداشته باشید

  8. #8
    کاربر دائمی آواتار booysusa
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    ایران سرای من است
    پست
    174

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    نقل قول نوشته شده توسط barnamenevisjavan مشاهده تاپیک
    چرا خودتون رو اذیت میکنید و درگیر این همه کد و پیچیدگی میکنید؟ بهتره از انتیتی فریمورک استفاده کنید تا دیگه این مشکلات رو نداشته باشید
    هنوز انتیتی فریمورک را فرا نگرفتم
    آموزش درست و حسابی سراغ دارید بفرستید که این ترس ما از انتیتی فریمورک از بین برود

  9. #9
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    نقل قول نوشته شده توسط barnamenevisjavan مشاهده تاپیک
    چرا خودتون رو اذیت میکنید و درگیر این همه کد و پیچیدگی میکنید؟ بهتره از انتیتی فریمورک استفاده کنید تا دیگه این مشکلات رو نداشته باشید

    والا همه پیشنهاد میکنن با انتیتی کارکنیم . من خودم با ado.net کار میکنم تا حالا هم مشکلاتی نداشتم و اگه پیش اومده اونقدر دست آدم توش بازه که به راحتی بتونه مشکلاتو حل کنه
    و اما اصل کاری همین آموزش انتیتی که هیچ جا یه آموزش کامل ندیدم. حتی پولی ها . مخصوصا برای ما که زبان انگلیسیمون ضعیفه و از آموزشهای خوب زبان اصلی نمیتونیم استفاده کنیم.
    من چندبار به قصد یادگیری اقدام کردم تا یه جایی جلو رفتم ولی واقعا گیج موندم. (خیلی مهم)مخصوصا هیشکی درمورد مایگریشن ها(اگه درست تلفظ کرده باشم) و پاک نشدن جداول بعد از اعمال تغییرات و موارد این چنینی توضیح جامع نداده و فقط به اسمش اشاره کرده و گذشته.
    گاها مثلا برای پروژه ای شده من کوئری نوشتم که از توابع اس کیو ال استفاده کرده . یا شده از ده بیستا جوین و جدول اطلعات باهم ترکیب یا استخراج شده . یا شرط های مختلف و سلکتهای داخلی (بنا به اقتضای کار) ، من نگران اینم که این موارد بعدا دردسر ساز نشه و راه حلی براشون پیدا کنم یا نه.


    آموزش های جناب نصیری رو هم که بقیه پیشنهاد دادن واقعا برای کسی که اولین باره درمورد انتیتی میخواد کار کنه خیلی مبهم و پایه ای نیست. بازم اگه شما آموزش خوب و ساده برای شروع دارید ممنون میشم معرفی کنید تا ما هم بی بهره نمونیم.
    آخرین ویرایش به وسیله رامین مرادی : یک شنبه 14 بهمن 1397 در 11:56 صبح

  10. #10

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    والا همه پیشنهاد میکنن با انتیتی کارکنیم . من خودم با ado.net کار میکنم تا حالا هم مشکلاتی نداشتم و اگه پیش اومده اونقدر دست آدم توش بازه که به راحتی بتونه مشکلاتو حل کنه
    و اما اصل کاری همین آموزش انتیتی که هیچ جا یه آموزش کامل ندیدم. حتی پولی ها . مخصوصا برای ما که زبان انگلیسیمون ضعیفه و از آموزشهای خوب زبان اصلی نمیتونیم استفاده کنیم.
    من چندبار به قصد یادگیری اقدام کردم تا یه جایی جلو رفتم ولی واقعا گیج موندم. (خیلی مهم)مخصوصا هیشکی درمورد مایگریشن ها(اگه درست تلفظ کرده باشم) و پاک نشدن جداول بعد از اعمال تغییرات و موارد این چنینی.
    گاها مثلا برای پروژه ای شده من کوئری نوشتم که از توابع اس کیو ال استفاده کرده . یا شده از ده بیستا جوین و جدول اطلعات باهم ترکیب یا استخراج شده . یا شرط های مختلف و سلکتهای داخلی (بنا به اقتضای کار) ، من نگران اینم که این موارد بعدا دردسر ساز نشه و راه حلی براشون پیدا کنم یا نه.


    آموزش های جناب نصیری رو هم که بقیه پیشنهاد دادن واقعا برای کسی که اولین باره درمورد انتیتی میخواد کار کنه خیلی مبهم و پایه ای نیست. بازم اگه شما آموزش خوب و ساده برای شروع دارید ممنون میشم معرفی کنید تا ما هم بی بهره نمونیم.
    رامین عزیز سلام .
    به این لینک یه سر بزن .

    https://toplearn.com/courses/48/

  11. #11

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    والا همه پیشنهاد میکنن با انتیتی کارکنیم . من خودم با ado.net کار میکنم تا حالا هم مشکلاتی نداشتم و اگه پیش اومده اونقدر دست آدم توش بازه که به راحتی بتونه مشکلاتو حل کنه
    و اما اصل کاری همین آموزش انتیتی که هیچ جا یه آموزش کامل ندیدم. حتی پولی ها . مخصوصا برای ما که زبان انگلیسیمون ضعیفه و از آموزشهای خوب زبان اصلی نمیتونیم استفاده کنیم.
    من چندبار به قصد یادگیری اقدام کردم تا یه جایی جلو رفتم ولی واقعا گیج موندم. (خیلی مهم)مخصوصا هیشکی درمورد مایگریشن ها(اگه درست تلفظ کرده باشم) و پاک نشدن جداول بعد از اعمال تغییرات و موارد این چنینی توضیح جامع نداده و فقط به اسمش اشاره کرده و گذشته.
    گاها مثلا برای پروژه ای شده من کوئری نوشتم که از توابع اس کیو ال استفاده کرده . یا شده از ده بیستا جوین و جدول اطلعات باهم ترکیب یا استخراج شده . یا شرط های مختلف و سلکتهای داخلی (بنا به اقتضای کار) ، من نگران اینم که این موارد بعدا دردسر ساز نشه و راه حلی براشون پیدا کنم یا نه.


    آموزش های جناب نصیری رو هم که بقیه پیشنهاد دادن واقعا برای کسی که اولین باره درمورد انتیتی میخواد کار کنه خیلی مبهم و پایه ای نیست. بازم اگه شما آموزش خوب و ساده برای شروع دارید ممنون میشم معرفی کنید تا ما هم بی بهره نمونیم.
    سلام، توی بحث مایگریشن مشکلتون چیه؟ بحثش که کاملا ساده و قابل فهمه.
    برای بیشتر کوئری ها میتونین از خود انتیتی استفاده کنین و مشکلی نخواهید داشت، اما برای مواردی که نتونستید از انتیتی استفاده کنید میتونید Ado رو با انتیتی ترکیب کنید و در بعضی جاها به جای انتیتی از ado استفاده کنید هیچ مشکلی هم برای برنامه تون پیش نخواهد اومد

  12. #12
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    سلام، توی بحث مایگریشن مشکلتون چیه؟ بحثش که کاملا ساده و قابل فهمه.
    برای بیشتر کوئری ها میتونین از خود انتیتی استفاده کنین و مشکلی نخواهید داشت، اما برای مواردی که نتونستید از انتیتی استفاده کنید میتونید Ado رو با انتیتی ترکیب کنید و در بعضی جاها به جای انتیتی از ado استفاده کنید هیچ مشکلی هم برای برنامه تون پیش نخواهد اومد
    خب درسته این تایپیک جاش نیست ولی بحثش پیش اومد بهتره بپرسم.
    من با کد فرست مثلا یه پروزه جدید کار میکنم. حالا تا یه جای کار پیش میرم و چندتا داده هم تو جدولم ذخیره کردم. یهو میبینم مثلا فلان فیلد باید به جدول اضافه بشه. حالا بعد اضافه کردن کل دیتابیسم پاک میشه و از نو ساخته میشه! منظورم اینه این مورد رو اصلا متوجه نمیشم.میگن مایگریشن. اصلا چی هست و چطوری باید باهاش کار کنم.
    اگه خودتون فرصت دارید یه پروژه ساده اضافه کردن و ویرایش و حذف و این موارد رو کارکنید یه الگو بگیرم ازش.

  13. #13

    نقل قول: مشکل در نوشتن کد جستجو در دیتابیس

    ببینید قبلا در مورد چهارتا سناریوی انتیتی براتون توضیح دادم، سه تا سناریوی اول صرفا در بازه زمانی توسعه نرم افزار روی سیستم شما میتونه کارایی داشته باشه اما برای انتشار نرم افزارتون و استفاده عمومی فک نکنم انچنان کاربردی داشته باشن
    پس میمونه سناریوی مایگریشن، در این سناریو انتیتی با دقت بالایی میاد تغییراتی که در مدل کلاسهاتون دادین رو روی دیتابیس نگاشت یا پیاده میکنه و نمیذاره داده هاتون حذف بشن، تنها حالت هایی که یک ستون از یکی از جداول دیتابیستون حذف میشه اینه که یا فیلدتون از کلاس متناظر حذف بشه و یا اینکه rename بشه یعنی قبلا مثلا اسم پراپرتی id بوده الان اسمشو تغییر دادین شده sid تنها در این دو حالته که مایگریشن اقدام به حذف یک ستون از جدول میکنه، اگه فرصت شد همون پروژه قبلی رو اینبار با مایگریشن آپلود میکنم

تاپیک های مشابه

  1. ساخت دیتابیس و استفاده از زبان SQL برای دسترسی به دیتابیس...
    نوشته شده توسط vahid1993 در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 1
    آخرین پست: سه شنبه 01 تیر 1395, 05:44 صبح
  2. پاسخ: 3
    آخرین پست: سه شنبه 26 آبان 1394, 19:39 عصر
  3. پاسخ: 2
    آخرین پست: پنج شنبه 11 تیر 1394, 16:11 عصر
  4. پاسخ: 7
    آخرین پست: شنبه 11 بهمن 1393, 09:50 صبح
  5. پاسخ: 0
    آخرین پست: چهارشنبه 04 اردیبهشت 1392, 12:01 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •