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

نام تاپیک: مشکل در استفاده از شئ گرایی در چهار عمل اصلی روی دیتابیس

  1. #1

    مشکل در استفاده از شئ گرایی در چهار عمل اصلی روی دیتابیس

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

    قسمت کلاس:


    public Book Select(int Id)
    {
    // ToDo: select code goes here
    Book book = new Book();
    command.CommandText = "Select * from Book where ID=@ID";
    command.Parameters.AddWithValue("ID", book.Id);
    connection.Open();
    reader = command.ExecuteReader();
    if (reader.Read())
    {
    book.Id = Convert.ToInt32(reader["ID"].ToString());
    book.BookAuthor = reader["BookAuthor"].ToString();
    book.BookTitle = reader["BookTitle"].ToString();
    book.Price = Convert.ToInt32(reader["Price"].ToString());
    book.PublishYear = Convert.ToInt32(reader["PublishYear"].ToString());

    }
    connection.Close();
    reader.Close();
    return Id;
    }


    که این متغیر ها و کانکشن رو در قسمت کامپوننتهای کلی نوشتم.

    و قسمت فرم:


    private void searchButton_Click_1(object sender, EventArgs e)
    {
    BookAdapter bookadapter = new BookAdapter();
    Book selectBook = new Book ();
    idTextBox.Text = selectBook.Id.ToString();
    authorTextBox.Text = selectBook.BookAuthor;
    titleTextBox.Text = selectBook.BookTitle;
    publishYearTextBox.Text = selectBook.PublishYear.ToString();
    priceTextBox.Text = selectBook.Price.ToString();
    bookadapter.Get(selectBook);
    MessageBox.Show("اطلاعات مورد نظر پیدا شد");
    }


    خواستم بدونم کجاش مشکل داره
    ینی میدونم تقریبا میگه نمیتونم کلاس رو به int تبدیل کنم ولی نمیدونم باید چجور حلش کنم....
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 08 خرداد 1397 در 23:37 عصر

  2. #2
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: استفاده از کلاس

    با سلام
    لطفاً برای قرار دادن کد در سایت از تگ C#‎‎‎‎‎ استفاده کنید و قوانین نامگذاری عنوان تاپیک رو مطالعه کنید چون عنوان تاپیک نامربوط با سوالتون هست
    کدتون مشکل داره
    مشکل کد رو میشه برطرف کرد ولی دلیل و فلسفشو متوجه نمیشید و اونی که نوشتید کلاس هست، کلاس نیست و در اصل متد هست
    مبحث توابع بازگشتی رو مطالعه فرمائید تا متوجه بشید چرا خطای int میدهد
    شما دارید کلاس رو به عنوان Type تعریف میکنید و id رو که از نوع int هست بهش return میکنید
    میتونید از کد زیر برای جستجو الگو برداری کنید و طبق برنامتون شخصی سازیش کنید و متوجه اشتباهات کدتون بشید

    private void Select(int id)
    {
    SqlConnection Connection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=dbTest;Integrated Security=true;");
    SqlCommand Command = new SqlCommand();
    Command.Connection = Connection;
    Command.CommandText = "Select * From Persons Where (ID = @ID)";
    Command.Parameters.AddWithValue("@ID", id);
    DataTable dt = new DataTable();
    Connection.Open();
    SqlDataReader dr = Command.ExecuteReader();
    dt.Load(dr);
    Connection.Close();
    dataGridView1.DataSource = dt;
    }



    private void button1_Click(object sender, EventArgs e)
    {
    Select(Convert.ToInt32(txtID.Text));
    }

    میشه جوره دیگه هم نوشت یا از DataAdapter استفاده کرد و یا حتی id رو در کوئری قرار داد ولی برای درک بهتر و نزدیک به کد خودتون، همه اجزا رو در همین متد تعریف کردم هر چند که بهتره Connection و DataTable در جنرال و کلاس تعریف کرد
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  3. #3

    نقل قول: استفاده از کلاس

    public Book Select(int Id)
    {
    //...
    command.Parameters.AddWithValue("ID", Id); // <====
    //...
    return book; // <=====
    }

    کد داخل فرم هم مشکل داره که باید دید کلاس BookAdapter به چه صورت پیاده شده.

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

    نقل قول: مشکل در استفاده از شئ گرایی در چهار عمل اصلی روی دیتابیس

    نقل قول نوشته شده توسط zarij70 مشاهده تاپیک
    سلام با استفاده از کلاس ها در سی شارپ دارم تمرین میکنم برای 4 عمل اصلی ینی همون ثبت و ویرایش و جستجو و حذف
    برای قسمت جستجو من بخاطر استفاده از کلاس یکم گیج شدم نمیدونم کجای کدم مشکل داره

    قسمت کلاس:


    public Book Select(int Id)
    {
    // ToDo: select code goes here
    Book book = new Book();
    command.CommandText = "Select * from Book where ID=@ID";
    command.Parameters.AddWithValue("ID", book.Id);
    connection.Open();
    reader = command.ExecuteReader();
    if (reader.Read())
    {
    book.Id = Convert.ToInt32(reader["ID"].ToString());
    book.BookAuthor = reader["BookAuthor"].ToString();
    book.BookTitle = reader["BookTitle"].ToString();
    book.Price = Convert.ToInt32(reader["Price"].ToString());
    book.PublishYear = Convert.ToInt32(reader["PublishYear"].ToString());

    }
    connection.Close();
    reader.Close();
    return Id;
    }


    که این متغیر ها و کانکشن رو در قسمت کامپوننتهای کلی نوشتم.

    و قسمت فرم:


    private void searchButton_Click_1(object sender, EventArgs e)
    {
    BookAdapter bookadapter = new BookAdapter();
    Book selectBook = new Book ();
    idTextBox.Text = selectBook.Id.ToString();
    authorTextBox.Text = selectBook.BookAuthor;
    titleTextBox.Text = selectBook.BookTitle;
    publishYearTextBox.Text = selectBook.PublishYear.ToString();
    priceTextBox.Text = selectBook.Price.ToString();
    bookadapter.Get(selectBook);
    MessageBox.Show("اطلاعات مورد نظر پیدا شد");
    }


    خواستم بدونم کجاش مشکل داره
    ینی میدونم تقریبا میگه نمیتونم کلاس رو به int تبدیل کنم ولی نمیدونم باید چجور حلش کنم....
    شما خروجی تابعتون از نوع کلاس book هست چرا خروجیش رو آیدی برمیگردونید؟!! این Id کجا تعریف شده!!

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

  1. مشکل در اجرای کوئری روی دیتابیس
    نوشته شده توسط mojtaba.sln در بخش Yii Framework
    پاسخ: 0
    آخرین پست: جمعه 07 خرداد 1395, 10:38 صبح
  2. سوال: تبدیل یک عدد به مبنای2(باینری) در C فقط با استفاده از Printf و چهار عمل اصلی
    نوشته شده توسط Nice-Boy در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: یک شنبه 09 اسفند 1388, 19:43 عصر
  3. مشکل برای استفاده از بک اسلش ("/") در connection strin ؟(بک اسلش رو قبول نمی کنه!)
    نوشته شده توسط aminghaderi در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 2
    آخرین پست: سه شنبه 30 تیر 1388, 18:58 عصر
  4. مشکل همزمانی استفاده از پایگاه داده ها در MS sql
    نوشته شده توسط khadem1386 در بخش SQL Server
    پاسخ: 1
    آخرین پست: دوشنبه 26 اسفند 1387, 14:01 عصر
  5. مشكل با استفاده از group by در query
    نوشته شده توسط HPARHIZI در بخش Access
    پاسخ: 1
    آخرین پست: یک شنبه 12 خرداد 1387, 13:14 عصر

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

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