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

نام تاپیک: جلوگیری از تکرار اطلاعات

  1. #1

    جلوگیری از تکرار اطلاعات

    سلام .
    من یه کد می خوام که اجازه نده (مثلا یه دانشجو بتونه درسی رو که پاس کرده دوباره برداره , و مثلا استاد نتواند در یه روز 2تا کلاس در یک ساعت بگیرد)
    لطفا کمکم منید لنگ این قسمت پروژه ام هستم

  2. #2

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    سوالتون واضح نیست.

    داخل چی میخواید داده تکراری وارد نشه؟ یک پایگاه داده یا یه آرایه ای چیزی؟

    در مجموع باید با یه حلقه ی For تک تک رکورد ها رو چک کنید.

  3. #3

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    آره راست میگی - ببخشید.
    من با سی شارپ یه پروژه دارم که سیستم ثبت نام دانشگاه هست با بانک اکسس.
    حالا می خوام کدی بنویسم که به کاربر اجازه نده که بتواند یه استاد رو در کلاس یکسان و در ساعت همزمان ثبت کند.
    ممنون میشم شبه کدش رو برام بنویسی .

  4. #4
    کاربر دائمی آواتار sadaf_
    تاریخ عضویت
    مهر 1388
    محل زندگی
    اصفهان
    پست
    845

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    می تونین در دیتابیس به صورت محدودیت ها فیلتر کنین و اوها را به کاربر نمایش بدید
    و قطعا کاربر همونی رو انتخاب می کنه که براش محدود شده

  5. #5

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    من برنامه نویسیم کلا خوب نیست , میشه کد مربوطه رو برام بنویسید , اگه مقدوره مرسی .

  6. #6
    کاربر دائمی آواتار sadaf_
    تاریخ عضویت
    مهر 1388
    محل زندگی
    اصفهان
    پست
    845

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک


    select * from TableName Where NameField = Value

    این دستور در دیتابیس کاربرد داره در view یا sp
    اگر مشکلت زیاده باید جزئیات بیشتری رو مطرح کنی تا دوستان کمکت کنند
    از table ها بگو ارتباط بین اینها
    یا دیتابیس رو بگذار یا هم ازشون عکس بگذار و یه توضیح هم بده

  7. #7

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    سلام ،

    بهتره از Count و Where استفاده کنی به مثال زیر دقت کن :

    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "Select count(*) from table1 where dars=@param";
    cmd.Parameters.AddWithValue("@param", textBox1.Text.Trim());

    int a = 0;
    a = Convert.ToInt32(cmd.ExecuteScalar());

    if (a > 0)
    {
    MessageBox.Show("این درس قبلا توسط استاد گرفته شده");
    }
    else
    {
    //Do somrthing
    }


    موفق باشید./

  8. #8

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    نقل قول نوشته شده توسط vbBoss مشاهده تاپیک
    سلام ، بهتره از Count و Where استفاده کنی
    سلام.
    بهتر اینه که از EXISTS استفاده کنید (یا در هنگام استفاده از LINQ، از Any استفاده کنید).
    به بیان دیگه، SQL Statement شما باید یه Bool (یا از دید بانک، یه BIT) برگردونه:

    IF EXISTS (SELECT * FROM ...) RETURN 1
    RETURN 0


    موفق باشید.

  9. #9

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    نقل قول نوشته شده توسط mehdi.mousavi مشاهده تاپیک
    سلام.
    بهتر اینه که از EXISTS استفاده کنید (یا در هنگام استفاده از LINQ، از Any استفاده کنید).
    به بیان دیگه، SQL Statement شما باید یه Bool (یا از دید بانک، یه BIT) برگردونه:

    IF EXISTS (SELECT * FROM ...) RETURN 1

    RETURN 0


    موفق باشید.
    میشه لطفا بیشتر توضیح بدید ؟
    برای جلو گیری ازداده تکراری چه کاری باید کرد ؟

  10. #10

    نقل قول: جلوگیری از تکرار اطلاعات

    نقل قول نوشته شده توسط Reza_Yarahmadi مشاهده تاپیک
    من فرض کردم فیلدی که میخوای چک کنی id است

    SqlConnection Con = new SqlConnection("Connection String");
    SqlCommand Cmd = new SqlCommand();
    Cmd.CommandText = "Insert into TableName ( id, ...) values (@id, ...)";
    Cmd.Parameters.AddWithValue("@id", textBox1.Text);
    //Add Other Parameters
    Cmd.Connection = Con;
    Con.Open();
    try
    {
    Cmd.ExecuteNonQuery();
    MessageBox.Show("Your Command Accept");
    }
    catch
    {
    MessageBox.Show("This ID is existing");
    }
    finally
    {
    Con.Close();
    }
    این راه هم هست برای جلو گیری از داده تکراری اما کد تاپیک قبلی رو میشه توضیح بدید ؟

  11. #11

    نقل قول: جلوگیری از تکرار اطلاعات ! کمک

    نقل قول نوشته شده توسط vahdani_d مشاهده تاپیک
    میشه لطفا بیشتر توضیح بدید ؟ برای جلو گیری ازداده تکراری چه کاری باید کرد ؟
    سلام.
    برای جلوگیری از ورود داده تکراری، باید در Stored Procedure مورد نظر، EXISTS ای بنویسید که ابتدا مطمن بشید رکورد وجود نداره، سپس اقدام به INSERT کردن رکورد کنید:


    IF NOT EXISTS(SELECT * FROM Customers WHERE Name=N'Mehdi') BEGIN
    INSERT INTO Customers(Name) VALUES('Mehdi')
    END


    اینجا، من ابتدا مطمئن میشم که در جدول Customer ها مشتری ای با اسم مهدی ندارم، اگر نبود، اونوقت عمل Insert رو انجام میدم. البته، این بدین معنا نیست که نباید Constraint های مربوطه رو روی بانک تعریف کنید...


    نقل قول نوشته شده توسط vahdani_d مشاهده تاپیک
    این راه هم هست برای جلو گیری از داده تکراری اما کد تاپیک قبلی رو میشه توضیح بدید ؟
    ببینید. در حالت کلی، وقتی از EXISTS استفاده می کنیم، RDBMS اگر به اولین رکورد مورد نظر ما برسه، میتونه عملیات رو متوقف کنه. چرا؟ چون متوجه میشه حداقل یک رکورد با شرایط مورد نظر ما در بانک وجود داره. اما وقتی از COUNT(*) استفاده می کنید، RDBMS رو مجبور به شمارش کلیه Row هایی که حاوی شرط مورد نظر هستن، می کنید. بسته به شرایط، استفاده از COUNT میتونه صدها برابر (یا حتی بیشتر) کندتر از EXISTS باشه. بنابراین، هرگز نباید برای تست وجود یا عدم وجود یک رکورد، از COUNT استفاده کرد. این مقاله مقایسه جالبی بین این دو و Performance هر یک انجام داده.

    اما کدی که شما بهش اشاره کردید، داره از این واقعیت استفاده می کنه که روی بانک Constraint ای Unique برای اون ستون خاص تعریف کرده، در نتیجه، هنگام درج داده تکراری، Exception ای Throw میشه و ما (به نوعی) متوجه میشیم که داده تکراری هستش. اما این Exception ممکنه بنا به دلائل متفاوتی throw بشه و نمیشه لزوما گفت که به صرف تکراری بودن رکورد بوده که Exception مورد نظر Throw شده. تولید و مدیریت Exception ها در سیستم بسیار هزینه بر هستش، بنابراین هر جا که بشه از اونها پرهیز کرد، باید اینکار رو انجام داد. در کدی که من نوشتم، شما می تونید با Return Value ای متوجه تکراری بودن، یا نبودن رکورد مورد نظر بشید، بدون اینکه سیستم رو مجبور به تولید و مدیریت Exception کنید....

    موفق باشید.

  12. #12

    نقل قول: جلوگیری از تکرار اطلاعات

    سلام
    ولی من هرچیزی وارد میکنم میگه تکراریه چرا من این مشکل رو دارم؟

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

    نقل قول: جلوگیری از تکرار اطلاعات

    نقل قول نوشته شده توسط javady_joon مشاهده تاپیک
    سلام
    ولی من هرچیزی وارد میکنم میگه تکراریه چرا من این مشکل رو دارم؟
    کد SP رو قرار بدید
    یک نمونه sp
    USE [dbGlass]
    GO
    /****** Object: StoredProcedure [dbo].[SP_Test] Script Date: 09/19/2014 20:24:29 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER proc [dbo].[SP_Test]
    (
    @n nvarchar(30),
    @Result bit output
    )
    AS
    BEGIN

    if not Exists (SELECT TOP (1) codeContact, n, nf FROM tbl_Contacts WHERE (n = @n))
    Begin
    set @Result=(0)
    -- code for insert
    End
    Else
    Begin
    set @Result=(1)
    End

    END

  14. #14

    نقل قول: جلوگیری از تکرار اطلاعات

    با سلام این کد من این کدها رو کجاش بذارم؟



    SqlConnection conn = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users  \\hajiabad\\documents\\visual studio 2012\\Projects\\bank\\bank\\11.mdf;Integrated Security=True");

    SqlCommand cmd = new SqlCommand();

    cmd.Connection = conn;
    cmd.CommandText = "insert into login ([User] , [password]) Values ('" + textBox1.Text.ToString() + "','" + textBox2.Text + "')";
    cmd.Parameters.AddWithValue("[password]", textBox1.Text);
    conn.Open();

    cmd.ExecuteNonQuery();

    conn.Close();

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

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