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

نام تاپیک: چک کردن قبل ثبت اطلاعات در دیتابیس sql

  1. #1
    کاربر دائمی آواتار behrooz69
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    Gorgan
    سن
    33
    پست
    469

    Thumbs up چک کردن قبل ثبت اطلاعات در دیتابیس sql

    دوستان سلام ، با این کد ما میایم اطلاعات رو ثبت میکنیم توی دیتابیس درست ؟؟؟

    گاهی وقتا برای اینکه تکراری ثبت نشه باید ، قبلش چک شه ، و ظاهرا با یه Select قبل Insert انجام میشه ، خوشحال میشم راهنماییم کنید

     Try

    cmd = New SqlCommand
    cmd.Connection = con
    con.Open()


    cmd.CommandText = "INSERT INTO TblRegisterCode (SourceLang,MozoCode,SourceCode)
    VALUES (@SourceLang,@MozoCode,@SourceCode)"


    cmd.Parameters.AddWithValue("SourceLang", Cbo_Source_Lang.Text)
    cmd.Parameters.AddWithValue("MozoCode", Txt_Mozoe_Source.Text)
    cmd.Parameters.AddWithValue("SourceCode", Txt_Source_Code.Text)




    If con.State = ConnectionState.Open Then


    cmd.ExecuteNonQuery()
    MessageBox.Show("کد جدید ثبت")


    End If


    Catch ex As Exception
    MsgBox("خطا در دریافت اطلاعات" & ex.Message)
    Finally
    con.Close()
    End Try

  2. #2
    کاربر دائمی آواتار behrooz69
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    Gorgan
    سن
    33
    پست
    469

    نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql

    از این کد استفاده میکنم ولی اررور دارم ، چک میکنه که هست ، ولی بخواد بعدش Insert کنه اررور داره و به باز بودن datareader گیر میده و چند باری بستمش ولی بازم اررور دارم ، راهنمایی دوستان

      If Txt_UserName.Text = Nothing Then            MessageBox.Show(" usernamo bezan ")
    Txt_UserName.Focus()
    Else
    Try


    cmd = New SqlCommand
    cmd.Connection = con
    con.Open()


    strsql = "select UserName from TblLogin where UserName=@UserName and [PassWord]=@PassWord"


    cmd = New SqlCommand(strsql, con)
    cmd.Parameters.AddWithValue("@UserName", Txt_UserName.Text)
    cmd.Parameters.AddWithValue("@Password", Txt_PassWord.Text)
    dr = cmd.ExecuteReader()


    If con.State = ConnectionState.Open Then
    If dr.Read Then
    MessageBox.Show(" hastesh")
    Else


    cmd.CommandText = "INSERT INTO TblLogin (UserName,PassWord,UserLevel)
    VALUES (@UserName,@PassWord,@UserLevel)"


    cmd.Parameters.AddWithValue("UserName", Txt_UserName.Text)
    cmd.Parameters.AddWithValue("PassWord", Txt_PassWord.Text)
    cmd.Parameters.AddWithValue("UserLevel", Cbo_UserLevel.Text)




    If con.State = ConnectionState.Open Then


    cmd.ExecuteNonQuery()
    MessageBox.Show("Reg shod")


    End If
    End If
    End If




    Catch ex As Exception
    MessageBox.Show(ex.Message)
    Finally
    con.Close()
    End Try


    End If
    آخرین ویرایش به وسیله behrooz69 : یک شنبه 25 آذر 1397 در 12:54 عصر

  3. #3

    نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql

    سلام دوست عزیز کانکشنت رو بعد هر بار استفاده ببند مشکل حل میشه

  4. #4

    نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql

    سلام
    طبیعتا در جدول شما فیلدی هست که مقدارش باید یونیک باشه (یکتا) و این رو از طریق مشخص کردن ایندکس روی جدول میشه انجامش داد. اگر همچین چیزی دارید ، با insert کردن رکورد تکراری ، Sql Server یک Exception صادر خواهد کرد و شما می تونید توی بلوک Try Catch استثنا رو مدیریت کنید (لیست Exception های Sql Server توی نت پیدا میشه).
    با این توضیحات ، نیازی به Select قبل از عمل Insert وجود نداره.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  5. #5

    نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql

    با درود
    من اوایل کارم با دات نت برای کار با بانک اطلاعاتی مثل همین نمونه سورس دوستمون کد ها را مستقیم تو برنامه مینوشتم که هم حجم برنامه بالا میرفت هم تو پشتیبانی و اراءه سرویس پکهای اصلاحی اذیت کننده میشد.یکبار از یکی از گزینه های آنالیز کد خود vs که استفاده کردم همه این مدل کد نویسی من را با هشدار ضعف امنیتی گزارش داد و پیشنهاد داد اونها رو داخل رویه های ذخیره شده و یا فانکشنهای خود sql بنویسم و بعد تو برنامه اونها رو فراخوانی کنم.
    برای مثال این دوستمون خیلی راحت میشه تو sql با یه if exsits و یا روشهای دیگه چک کرد که ایا رکورد قبلا بوده یا نه .اگر بودهupdate استفاده بشه و در غیر اینصورت insert

  6. #6
    کاربر جدید آواتار emamgoli
    تاریخ عضویت
    آذر 1394
    محل زندگی
    ارومیه
    پست
    2

    نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql

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

    بعد از فراخوانی بانک اطلاعاتی با استفاده از فیلتر (مثلاْ تاریخ) و قبل از ثبت اطلاعات از اعتبار سنجی و کد زیر استفاده میکنیم

    If Ds.Tables("Me_Table").Rows.Count > 0 Then MessageBox.Show("This date is already registered", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error) : Exit Sub

    در این کد در صورت برقرار بودن شرط برنامه یک پیغام میده و از دستور خارج میشه

  7. #7
    کاربر دائمی آواتار behrooz69
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    Gorgan
    سن
    33
    پست
    469

    نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql

    نقل قول نوشته شده توسط محمد آشتیانی مشاهده تاپیک
    سلام
    طبیعتا در جدول شما فیلدی هست که مقدارش باید یونیک باشه (یکتا) و این رو از طریق مشخص کردن ایندکس روی جدول میشه انجامش داد. اگر همچین چیزی دارید ، با insert کردن رکورد تکراری ، Sql Server یک Exception صادر خواهد کرد و شما می تونید توی بلوک Try Catch استثنا رو مدیریت کنید (لیست Exception های Sql Server توی نت پیدا میشه).
    با این توضیحات ، نیازی به Select قبل از عمل Insert وجود نداره.

    ممنونم از شما ، سعی میکنم پیدا کنم ، و ظاهرا با IFexist این عمل تست میشه ، رفرنس ایرانیا پیدا نشد ، ممنونم ازتون

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

  1. پاسخ: 2
    آخرین پست: پنج شنبه 11 تیر 1394, 16:11 عصر
  2. تبدیل دیتابیس فاكس پرو (FoxPro) به دیتابیس (SQL SERVER 2008) با پشتیبانی از زبان فارسی
    نوشته شده توسط majid_darab در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 9
    آخرین پست: سه شنبه 15 فروردین 1391, 16:14 عصر
  3. پاسخ: 1
    آخرین پست: چهارشنبه 02 شهریور 1390, 14:36 عصر
  4. پاسخ: 0
    آخرین پست: چهارشنبه 20 بهمن 1389, 16:56 عصر
  5. پاسخ: 2
    آخرین پست: چهارشنبه 17 آذر 1389, 20:08 عصر

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

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