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

نام تاپیک: مشکل در UPDATE رکورد

  1. #1

    Smile مشکل در UPDATE رکورد

    سلام
    با کد زیر کار update رکورد را انجام میدادم ولی فیلد code تغییر نمیکرد

    private void btnUpdate_Click(object sender, EventArgs e)
    {
    int intposition;
    SqlCommand objCommand = new SqlCommand();
    intposition = objCurrencyManager.Position;

    objCommand.Connection = objConnection;
    objCommand.CommandText = "update tbuy set code=@code,name=@name," +
    "model=@model,manufacturer=@manufacturer,sn=@s n," +
    "country=@country,price=@price,count=@count," +
    "date=@date,description=@description where code=@code";
    objCommand.CommandType = CommandType.Text;

    objCommand.Parameters.AddWithValue("@code", txtCode.Text);
    objCommand.Parameters.AddWithValue("@name", txtName.Text);
    objCommand.Parameters.AddWithValue("@model", txtModel.Text);
    objCommand.Parameters.AddWithValue("@manufacturer" ,
    txtManufacturer.Text);
    objCommand.Parameters.AddWithValue("@sn",txtSN.Tex t);
    objCommand.Parameters.AddWithValue("@country", txtCountry.Text);
    objCommand.Parameters.AddWithValue("@price",txtPri ce.Text);
    objCommand.Parameters.AddWithValue("@count",txtCou nt.Text);
    objCommand.Parameters.AddWithValue("@date", txtDate.Text);
    objCommand.Parameters.AddWithValue("@description",
    txtDescription.Text);


    objConnection.Open();
    try
    {
    int i = objCommand.ExecuteNonQuery();
    if (i == 1)
    MessageBox.Show("اطلاعات شما با موفقیت ثبت شد");
    }// end try
    catch (SqlException sqlExceptionErr)
    {
    if (sqlExceptionErr.Number == 2627)
    MessageBox.Show("اين کد قبلا ثبت شده");
    else
    MessageBox.Show(sqlExceptionErr.Message);
    }// end catch
    objConnection.Close();

    FillDataSetAndView();
    BindFields();

    objCurrencyManager.Position = intposition;
    ShowPosition();

    toolStripStatusLabel1.Text = "Record Updated";

    }// end btnUpdate_Click


    بعد این تغییرات رو انجام دادم ولی هر چی وارد میکنم میره تو catch میگه این کد قبلا ثبت شده. لطفا بگید که چه کنم

    objCommand.CommandText = "update tbuy set code='"+ txtCode.Text +"',name=@name," +
    "model=@model,manufacturer=@manufacturer,sn=@s n," +
    "country=@country,price=@price,count=@count," +
                     "date=@date,description=@description where code=code";

  2. #2
    کاربر تازه وارد آواتار f4rib0rz
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    آمل
    پست
    68

    نقل قول: مشکل در UPDATE رکورد

    خب معلومه که باید اررور بده . چون فیلد code (اگه اشتباه نکنم) کلید اصلیه واسه update نباید دوباره فیلد کد رو بفرسدی واسه update فقط کد رو بفرست برای where .


    objCommand.CommandText = "update tbuy set name=@name," +
    "model=@model,manufacturer=@manufacturer,sn=@s n," +
    "country=@country,price=@price,count=@count," +
    "date=@date,description=@description where code=code";

  3. #3

    نقل قول: مشکل در UPDATE رکورد

    دوست عزیز در صورتیکه میخواید کد (که کلید اصلی هم هست) رو تغییر باید کد قدیم و کد جدید رو با هم داشته باشید.
    توی دستوری که نوشتید(دستور اول) بر اساس کدی که واسش میفرستید جستجو انجام میشه ، اگر کد ، کد جدید باشه خب رکوردی با این کد ندارید که بتونه اونو پیدا کنه و تغییر بده. در صورتی هم که پیدا کنه شما کد رو به همون مقدار خودش تغییر میدید(در واقع تغییری نمیدید). دستور دوم هم با قبلی فرقی نمیکنه. تغییر سوم هم چون به ازا هر رکورد شرط Code = Code درست است برای تمام رکوردها میخواد تغییرات رو اعمال کنه که بالطبع بدلیل اینکه کد باید یونیک باشه بهتون خطا میده.
    روش کار به این صورته که شما باید بر اساس کدقدیم جستجو کنید و کد رو با کدجدید مقدار دهی کنید.
    Update tbuy Set Code = @NewCode Where Code = @OldCode

  4. #4

    نقل قول: مشکل در UPDATE رکورد

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

  5. #5

    نقل قول: مشکل در UPDATE رکورد

    متشکر میشم اگه دوستان راه حلی بدن

  6. #6

    نقل قول: مشکل در UPDATE رکورد

    اگه نمیخوای Code تغییر کنه اون رو از لیست SET بردار و فقط تو Where بزار باشه
    اگه میخوای Code هم تغییر کنه بیا مقدار جدید Code رو تو SET بزار و مقدار قبل رو تو Where

    اگه مورد دوم هست باید از این
    objCommand.Parameters.AddWithValue("@code", txtCode.Text); 

    دو تا تعریف کنی که @code و txtCode.Text رو باید تغییر بدی

  7. #7

    نقل قول: مشکل در UPDATE رکورد

    میخوام کد تغییر کنه ولی مقدار جدید و قدیم رو نمیدونم چه جوری تفکیک کنم کد بالا رو هم اگه کاملش رو بزارید خیلی لطف کردید

  8. #8

    نقل قول: مشکل در UPDATE رکورد

    یه رشته به اسم OldC درست کن و مقدار فعلی Code رو بریز داخلش


    objCommand.CommandText = "update tbuy set code=@Newcode,name=@name," +
    "model=@model,manufacturer=@manufacturer,sn=@s n," +
    "country=@country,price=@price,count=@count," +
    "date=@date,description=@description where code=@Oldcode";


    اینم اضافه کن

    objCommand.Parameters.AddWithValue(
    "@Oldcode", OldC);

  9. #9

    نقل قول: مشکل در UPDATE رکورد

    من اصلا متوجه این کدی که گذاشتید نمیشم اگه لطف کنید C#‎ کنید ممنون میشم فکر کنم بین تگ C#‎ نذاشتید
    در ضمن نمیدونم که چه جوری به یک فیلد دسترسی داشته باشم تا بتونم اون فیلد رو تو OldC بزارم
    آخرین ویرایش به وسیله mehran63 : شنبه 21 اسفند 1389 در 12:06 عصر

  10. #10

    نقل قول: مشکل در UPDATE رکورد

    آره ، نمیدونم چرا کد اسنطور نشون داده میشه

    مقداری رو که تو شرط
    WHere Code = @code

    قرار دادی از کجا خوندی؟
    مقدار OldC میشه همون مفدار شرط (یعنی Where Code = @Code)و مقدار جدیدت هم میشه مقداری که توی SET گذاشتی (یعنی Set Code = @Code)
    ولی نباید هر دو به یه اسم باشن
    میتونی Code@ رو به دو اسم دیگه تعریف کنی برا اولی NewCode@ و برا دومی OldCode@

    "SET Code = @NewCode Where Code = @OldCode


    objCommand.Parameters.AddWithValue("@OldCode", OldC);
    objCommand.Parameters.AddWithValue("@NewCode", txtCode.Text);

  11. #11

    نقل قول: مشکل در UPDATE رکورد

    بزار اصلا کاملتر توضیح بدم
    من چند تا تکست باکس روی فرمم دارم که داده های توی بانک رو توش با کدی که نوشتم نشون میده و با کلید هایی رکورد به جلو یا عقب هم میره ولی در update کردن فیلد کد به مشکل برخوردم و نمیدونم که مقدار داخل فیلد code که در بانک sql هستش رو چه جوری در یک متغییر بزارم

  12. #12

    نقل قول: مشکل در UPDATE رکورد

    لطفا یکی بگه چه جوری میتونم به یک فیلد دسترسی داشته باشم
    مثلا بگم اگر فیلد code برابر با فلان مقدار بود
    اگر یک نمونه کد بزارید ممنون میشم

  13. #13

    نقل قول: مشکل در UPDATE رکورد

    یه کار راحت تر
    یه رشته به اسم OldCode درست کن
    حالا که مقادیر رو به textBox منتقل می کنی بیا زمانی که txtCode رو مقدار میدی OldCode رو هم مقدار دهی کن مثلا
    txtCode.text = OldCode = ???;

    که ؟؟؟ روشی هست که الان داری مقدار میدی
    بعد بیا تو شرط Update مقدار OldCode رو بزار
    SET Code = txtCode   WHERE Code = OldCode

    البته این کد رو باید درست کنی

  14. #14

    نقل قول: مشکل در UPDATE رکورد

    اگه بازم نشد بگو

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

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

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