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

نام تاپیک: خطا بعد از ورود اطلاعات constainException

  1. #1
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زمین
    پست
    28

    خطا بعد از ورود اطلاعات constainException

    سلام دوستان
    من یه برنامه طراحی کردم که وقتی اون رو اجرا می کنم و اطلاعات وارد میکنم هیچ خطایی نمیده و اطلاعات رو در دیتا گرید ویو نشون میده ولی به محض اینکه برنامه رو ببندم و یکبار دیگه اجرا کنم خطای زیر رو میده و تنها کاری که میتونم بکنم اینه که اطلاعاتی که وارد کردم رو از طریق sql پاک کنم و یکبار دیگه برنامه رو اجرا کنم و با ورود اطلاعات جدید باز هم همون مشکل پیش میاد.
    لطفا راهنماییم کنید . مرسی.
    constraintException was unhandled
    Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

  2. #2
    کاربر دائمی آواتار littledemon
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شهر سردار خیبر : شهید همت
    پست
    154

    نقل قول: خطا بعد از ورود اطلاعات constainException

    علیک سلام
    اول یه چیز : Relation تعریف کردی تو دیتابیس ؟
    دوم : کدت رو بزار ببینیم چه کردی !
    سوم : فکر میکنم یه محدودیتی قائل شدی واسه فیلد ها تو SQL که اینجا یه مشکلی باهاش هست . و نمیتونه متوجه بشه . مثل همون محدودیت ها که امکان داره یه فیلد Null که البته نباید تو دیتا بیس نال باشه رو سعی داری بخونی .

    این اتفاق کی میافته ؟ یعنی فقط یه سری داده رو میای میخونی ؟ یا بعد روش تغییری میدی ؟

  3. #3
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زمین
    پست
    28

    نقل قول: خطا بعد از ورود اطلاعات constainException

    منظورتون رو از سوال اول متوجه نشدم؟؟ توی sql فقط جدول طراحی کردم و با کدنویسی ارتباط به جدولم رو تعریف کردم .
    این خطا رو به کدی که به صورت خودکار بعد از اتصال به دیتابیس به برنامه تو قسمت form load اضافه میشه میگیره یعنی این کد
    this.infoTableAdapter.Fill.(this.cipDataSet1.info) ;
    این هم کد کلید ثبت اطلاعاتم

    string s;
    string n;
    string p;
    SqlConnection con = newSqlConnection();

    con.ConnectionString =
    @"Data Source=.;Initial Catalog=cip;Integrated Security=True";
    SqlCommand cmd = newSqlCommand();
    if (radioButton1 .Checked== true )
    s =
    "زن";
    else
    s =
    "مرد";
    if (radioButton3.Checked == true)

    p =
    "ورودی";
    else
    p =
    "خروجی";
    if (radioButton5.Checked == true)

    n =





    "داخلی";





    else

    n =





    "خارجی";



    string sqlstr=string.Format("insert into info(name, family, date, [sh parvaz], maghsad, [air name], pardakht, [sh tell], [tedad mostaghbel], [mablagh daryafti-mosafer], [mablagh daryafti-hamrah], [saate parvaz], parvaz, [noe parvaz], jensiat, [code marja])values('{0}','{1}','{2}',{3},'{4}','{5}','{6}',{7 },{8},{9},{10},'{11}','{12}','{13}','{14}','{15}') " ,textBox1 .Text,textBox2 .Text ,dateTimePicker1 .DateValue ,Int32 .Parse (textBox3 .Text),textBox5 .Text ,comboBox1 .Text , comboBox2 .Text ,textBox6 .Text , Int32 .Parse (textBox7 .Text ),Int32 .Parse (textBox8 .Text ),Int32 .Parse (textBox9 .Text ),textBox4 .Text , p,n , s , listBox1 .Text) ;

    con .Open ();

    cmd.CommandText = sqlstr ;

    cmd .Connection = con ;

    cmd.ExecuteNonQuery ();

    con.Close ();

    vs();












    فقط اطلاعات ثبت میکنم و هیچ تغییرات دیگه ای نمیدم به محض بستن و باز کردن برنامه این خطا رو میده .




    آخرین ویرایش به وسیله gilaseabi : چهارشنبه 28 فروردین 1392 در 14:03 عصر

  4. #4
    کاربر دائمی آواتار littledemon
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شهر سردار خیبر : شهید همت
    پست
    154

    نقل قول: خطا بعد از ورود اطلاعات constainException

    خوب شما تعاریف فیلد های دیتابیست رو بنویس . هر فیلد با نوع . و آیا nullable هست یا مثلا کلیده یا نه و ... فکر میکنم یه اشتباهی توش باشه ...
    به طور کلی محدودیت هایی که توی تعریف فیلد هات ایجاد کردی رو بیار تا بشه یه فکری کرد .
    بعد هم یه چیز دیگه شما اداپتور رو داخل Form Load پر کردی . بعد از یک بار وارد کردن مقادیر داخل دیتابیس . برو داخل دیتا بیس (با خود SQL Managment) و سعی کن اون سطری که ایجاد کردی رو یکی از فیلد هاش رو تغییر بدی. مثلا مقدار یه فیلد رو عوض کن . حالا باید اونجا هم یه اروری دریافت کنی اگه مشکل از تعاریف جداول و یا تغییر در مقادیر فیلد ها باشه .

    و بازم یه چیز دیگه : شما وقتی ثبت اطلاعات میکنی ، پشت سرش که اطلاعات رو تو دیتا گرید نشون میده با آداپتور از دیتا بیس دوباره میخونیش؟ یا همونجا از دیتا ست حاضر استفاده میکنی (یعنی قبلا خودت پرش کردی و نمیری از دیتا بیس بخونی دوباره )؟
    کد ثبت اطلاعات مشکلی نداره !

  5. #5
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زمین
    پست
    28

    نقل قول: خطا بعد از ورود اطلاعات constainException

    هیچ محدودیت دیگه ای ندارن تمام کاری که تو دیتا بیس انجام دادم همینه، نام ستون و نوع آن ها
    Capture.JPG
    بعد از ورود اطلاعات میتونم توی دیتابیس اطلاعاتم رو تغییر بدم و هیچ خطایی نمیده .
    منظورتون رو از پر کردن اداپتور در Form-loadنفهمیدم ؟؟ من مبتدی هستم ، اگر براتون امکانش هست برام بیشتر توضیح بدید، در ضمن از راهنماییهاتون ممنونم .

  6. #6
    کاربر دائمی آواتار littledemon
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شهر سردار خیبر : شهید همت
    پست
    154

    نقل قول: خطا بعد از ورود اطلاعات constainException

    خوب مشکلی نیست تو بحث دیتابیس هم ... لاقل این طور به نظر میرسه .
    ببینم وقتی تو خود برنامه دیتا گرید رو پر میکنی ، با چه کدی این کار رو انجام میدی ؟ راسیاتش من هی دارم به کد هات مشکوک تر میشم

    و این که کدت رو از Form Load اوردی بیرون تو یه دکمه ای چیزی ؟ ببین مشکل همونه یا نه ؟

  7. #7
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زمین
    پست
    28

    نقل قول: خطا بعد از ورود اطلاعات constainException

    ممنون که پیگیری میکنید و جواب میدید، راستیتش من کسی رو ندارم که سوال هام رو ازش بپرسم ، و تنها جایی که میتونم سوال بپرسم همین جاست ، مرسی که تنهام نمیذارید.
    این هم کدی که دیتاگرید با اون پر میشه :
    [CODE]

    public
    void vs()
    {

    dataGridView1.DataBindings.Clear();



    SqlConnection sq=newSqlConnection();

    sq.ConnectionString=

    @"Data Source=.;Initial Catalog=cip;Integrated Security=True";



    string strco = "select * from info";



    SqlDataAdapter da=newSqlDataAdapter(strco,sq);



    DataSet ds=newDataSet();

    da.Fill(ds,

    "info");

    dataGridView1.DataBindings.Add(

    newBinding("datasource", ds,"info" ));

    }
    [CODE/]
    شاید یه بار دیگه بشینم برنامه رو از اول بنویسم .

  8. #8
    کاربر دائمی آواتار littledemon
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شهر سردار خیبر : شهید همت
    پست
    154

    نقل قول: خطا بعد از ورود اطلاعات constainException

    خوب :
    ببین این کدهات هم مشکلی نداره . میمونه آخرین قسمت که کدهای Form Load هست .
    شما گفتی از این کد واسه خوندن اداپتور استفاده کردی :
    this.infoTableAdapter.Fill.(this.cipDataSet1.info) ;
    این cipDataSet1.info رو کجا بهش معرفی کردی ؟ ببین تا جایی که من میدونم شما وقتی میای و info رو از دیتاست صدا میزنی باید قبلش ایجادش کرده باشی و ساختارش رو هم احتمالا تعریف کرده باشی . که فکر میکنم از اینجا باشه . البته من هنوز کدهای این قسمتت رو ندیدم که بتونم قطعی بگم !
    اگه کد های داخل فرم لود رو هم بذاری که چه بهتر . امیدوارم بتونم مشکلت رو شناسایی کنم .

    راستی چرا از همون روش برای پر کردن دیتاست با آداپتور استفاده نمی کنی ؟ از این :
    da.Fill(ds,"info");
    احتمالا فردا صبح دیگه بیام سر بزنم.

  9. #9

    نقل قول: خطا بعد از ورود اطلاعات constainException

    مشکل ارتباط فیلد کلید خارجی در جدول دیگه میباشد

  10. #10
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زمین
    پست
    28

    نقل قول: خطا بعد از ورود اطلاعات constainException

    من تو هیج کدوم از جدول هام کلید ندارم ولی اطلاعاتی که توی یکی از ستون ها قرار میگیره از یکی از ستون های یه جدول دیگه که از توی لیست باکس انتخاب میشه ، اگر منظورتون اینه، باید چیکارش کنم ؟؟

    و اینکه من تو form load کدی اضافه نکردم فقط متد رو صدا زدم :
    [



    privatevoid Form1_Load(object sender, EventArgs e)

    {

    // TODO: This line of code loads data into the 'cipDataSet1.info' table. You can move, or remove it, as needed.


    this.infoTableAdapter.Fill(this.cipDataSet1.info);

    // TODO: This line of code loads data into the 'cipDataSet.codedaramad' table. You can move, or remove it, as needed.

    this.codedaramadTableAdapter.Fill(this.cipDataSet.codedaramad);

    vs();

    }

  11. #11
    کاربر دائمی آواتار littledemon
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شهر سردار خیبر : شهید همت
    پست
    154

    نقل قول: خطا بعد از ورود اطلاعات constainException

    خوب این یعنی کلید داری
    خوب حالا فیلدی که داخل 2 تا جدول استفاده کردی در هر 2 جدول هم نام و از یک نوع هست ؟
    مطلب بعدی این که آیا مقداری وجود داره که خونده بشه ولی در اون جدول فیلدش پر نشده باشه ؟
    فرض کن تو جدول 1 داری :
    m_id , m_name , m_phone
    در جدول 2 داری :
    m_id,m_work

    حالا از جدول 1 , Select میکنی فیلدی که m_id اون برابر باشه با m_id در جدول 2
    همچین حالتی داری تو دیتابیس دیگه انشالله ؟

    -راستی نظر شخصی من : فعلا سعی کن واسه پر کردن دیتاست به صورت دستی عمل کنی .
    منظورم
     
    dataset ds=new dataset();
    adaptor.Fill(ds,"Table");

  12. #12
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    زمین
    پست
    28

    نقل قول: خطا بعد از ورود اطلاعات constainException

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

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

  1. سوال: عمل select مجدد بعد از ورود اطلاعات
    نوشته شده توسط fdaliry در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 25 بهمن 1388, 13:01 عصر
  2. نمايش اطلاعات بلافاصله بعد از ورود اطلاعات
    نوشته شده توسط mskarimi در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: سه شنبه 20 مرداد 1388, 15:24 عصر
  3. خطا در نحوه ورود اطلاعات
    نوشته شده توسط babalengderaz در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: دوشنبه 09 دی 1387, 20:10 عصر
  4. خطا در حین ورود اطلاعات در بانک
    نوشته شده توسط kamal_Zarrinkamar در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: جمعه 12 آبان 1385, 01:02 صبح
  5. کمک فوری : خطا در هنگام ورود اطلاعات به بانک با دستور insert
    نوشته شده توسط mohsen_borzooei در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 3
    آخرین پست: شنبه 06 آبان 1385, 09:03 صبح

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

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