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

نام تاپیک: مشکل در اضافه کردن رکورد

  1. #1
    کاربر دائمی آواتار alex_kh58
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    همین اطرافم
    پست
    102

    Unhappy مشکل در اضافه کردن رکورد

    موقع اضافه کردن رکورد به Datatable پیغام زیر رامی دهد
    there is norow at position 0
    در حالی که بقیه فرم ها مشکلی ندارد و با روش یکسانی نوشته شده اند.
    گفتم شاید این خطارو دیده باشید و به نظرتون آشنا باشه. اگر کد هم لازم باشد بگید که اضافه کنم

            private void NbtnSave_Click(object sender, EventArgs e)
    {
    try
    {

    switch (_CurrentMode)
    {
    case ManipulationMode.Edit:
    this.Validate();
    this.trHesabBankiBindingSource.EndEdit();
    if (dpDataSet.trHesabBanki[trHesabBankiBindingSource.Position].RowState == DataRowState.Modified)
    {
    //gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki[trHesabBankiBindingSource.Position]);
    //gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki);
    }
    break;
    case ManipulationMode.New:
    this.Validate();
    this.trHesabBankiBindingSource.EndEdit();
    gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki[trHesabBankiBindingSource.Position]);
    //gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki);
    break;
    default:
    MessageBox.Show("BAD STATE");
    break;

    }
    _CurrentMode = ManipulationMode.Normal;
    EnableControls(ManipulationMode.Normal);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }


    کد HesabBanki_Update
          public void HesabBanki_Update(dpDataSet.trHesabBankiRow trHesabBankiRow)
    {
    try
    {
    _trHesabBankiTableAdapter.Update(trHesabBankiRow);
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1386
    پست
    19
    کد بزاری راحت تر می شه خطا را بررسی کرد!

  3. #3
    نوع دستوراتی که به کار برده اید برای من چندان آشنا نیستند و اولین بار است که با اونها برخورد می کنم.
    اما...
    پیغامی که دریافت می کنید (There is no row at position 0. ) برای اینست که رکوردی با مشخصاتی که برای انتخاب آن در نظر گرفته اید وجود ندارد و شما اصرار دارید بر روی رکوردی که وجود ندارد عملیات انجام بدهید.(عرض کردم ، نوع عملیات شما را در کد های بالا متوجه نمی شوم)
    میشه کد اس کیو ال رو بذارید؟

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

    کد

    با استفاده از Wizard خودNet
    BindingSource, BindingNevigator
    تولید می شود که دیگر کد SQL وجود ندارد.
    در این کد ها هم از Tableadapterاستفاده شده و از خود متدهای DataSet
    که وقتی در فرم دکمه جدید را میزنم و اطلاعات را وارد می کنم بعدش دکمه ذخیره را میزنم این پیغام را می دهد.

  5. #5

    نقل قول: مشکل در اضافه کردن رکورد

    نقل قول نوشته شده توسط choobin84 مشاهده تاپیک
    نوع دستوراتی که به کار برده اید برای من چندان آشنا نیستند و اولین بار است که با اونها برخورد می کنم.
    اما...
    پیغامی که دریافت می کنید (There is no row at position 0. ) برای اینست که رکوردی با مشخصاتی که برای انتخاب آن در نظر گرفته اید وجود ندارد و شما اصرار دارید بر روی رکوردی که وجود ندارد عملیات انجام بدهید.(عرض کردم ، نوع عملیات شما را در کد های بالا متوجه نمی شوم)
    میشه کد اس کیو ال رو بذارید؟
    با سلام
    من هم در برنامم همچین error ای دارم.با اینکه کدی که دارم در فرم های دیگه درست کار میکنه.کد فرم را براتون اینجا میذارم.


    PrivateSub frm_karkard_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
    cmd_add.Enabled =
    True
    cmd_save.Enabled = False
    cmd_del.Enabled = False
    cmd_edit.Enabled = False
    cmd_undo.Enabled = False

    If cn.State = ConnectionState.Closed Then
    cn.Open()
    EndIf
    ds = New DataSet
    Try
    If str_mahal = ""Then
    If modir = TrueThen
    da = New SqlDataAdapter("select * from karkard", cn)
    da_view =
    New SqlDataAdapter("select * from view_karkard", cn)
    Dim da_khodro AsNew SqlDataAdapter("select khodro_no from khodro", cn)
    da_khodro.Fill(ds,
    "khodro")
    cmb_no.DataSource = ds.Tables(
    "khodro")
    cmb_no.DisplayMember =
    "khodro_no"
    cmb_no.Text = ""
    Else
    da = New SqlDataAdapter("select * from karkard where code_mantaghe=" & cod_jaygah, cn)
    da_view =
    New SqlDataAdapter("select * from view_karkard where code_mantaghe=" & cod_jaygah, cn)
    Dim da_khodro AsNew SqlDataAdapter("select khodro_no from khodro where code_mantaghe=" & cod_jaygah, cn)
    da_khodro.Fill(ds,
    "khodro")
    cmb_no.DataSource = ds.Tables(
    "khodro")
    cmb_no.Text =
    ""
    EndIf

    Else

    Dim da_khodro AsNew SqlDataAdapter("select khodro_no from khodro where khodro_no='" & str_mahal & "'", cn)
    da_khodro.Fill(ds,
    "khodro")
    cmb_no.DataSource = ds.Tables(
    "khodro")
    cmb_no.Text = str_mahal
    Button3.Enabled =
    False

    da = New SqlDataAdapter("select * from karkard where khodro_no='" & str_mahal & "'", cn)
    da_view =
    New SqlDataAdapter("select * from view_karkard where khodro_no='" & str_mahal & "'", cn)
    EndIf

    da.Fill(ds, "karkard")
    Dim cb AsNew SqlCommandBuilder(da)
    da_view =
    New SqlDataAdapter("select* from view_karkard", cn)
    da_view.Fill(ds,
    "view_karkard")
    dv =
    New DataView(ds.Tables("view_karkard"))
    DataGridView1.DataSource = ds.Tables(
    "view_karkard")


    set_flex()
    Catch ex As Exception

    MessageBox.Show(ex.Message & ex.Source & ex.StackTrace)
    Finally
    cn.Close()
    EndTry

    EndSub
    PrivateSub cmd_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_add.Click
    cmd_add.Enabled =
    False
    cmd_save.Enabled = True
    cmd_del.Enabled = False
    cmd_edit.Enabled = False
    cmd_undo.Enabled = True
    edit = False
    txt_code.Text = ""
    txt_karkard.Text = ""
    txt_saat.Text = ""
    txt_mablagh.Text = ""
    txt_maliat.Text = ""
    If str_mahal = ""Then
    cmb_no.Text = ""
    EndIf
    'cmb_mah.Text = ""
    'cmb_sal.Text = ""
    txt_kol.Text = ""
    txt_rooz.Text = ""
    txt_mamooriat.Text = ""

    txt_karkard.Focus()
    EndSub
    PrivateSub cmd_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_save.Click
    If edit = FalseThen
    Dim dr As DataRow
    dr = ds.Tables(
    "karkard").NewRow
    With dr
    '.Item(0) = txt_code.Text
    .Item(1) = txt_karkard.Text
    .Item(2) = txt_saat.Text
    .Item(3) = txt_mablagh.Text
    .Item(4) = txt_maliat.Text
    .Item(5) = cmb_no.Text
    .Item(6) = cmb_mah.SelectedValue
    .Item(7) = cmb_sal.Text
    .Item(8) = txt_kol.Text
    .Item(9) = txt_rooz.Text
    .Item(10) = txt_mamooriat.Text


    EndWith
    ds.Tables("karkard").Rows.Add(dr)
    da.Update(ds,
    "karkard")
    'ds.Tables("karkard").Clear()
    'da.Fill(ds, "karkard")
    ds.Tables("view_karkard").Clear()
    da_view.Fill(ds,
    "view_karkard")
    Else'edit
    With ds.Tables("karkard").Rows(DataGridView1.CurrentRow.Index)
    .BeginEdit()
    '.Item(0) = txt_code.Text
    .Item(1) = txt_karkard.Text
    .Item(2) = txt_saat.Text
    .Item(3) = txt_mablagh.Text
    .Item(4) = txt_maliat.Text
    .Item(5) = cmb_no.Text
    .Item(6) = cmb_mah.SelectedValue
    .Item(7) = cmb_sal.Text
    .Item(8) = txt_kol.Text
    .Item(9) = txt_rooz.Text
    .Item(10) = txt_mamooriat.Text

    .EndEdit()
    EndWith
    da.Update(ds, "karkard")
    'ds.Tables("karkard").Clear()
    'da.Fill(ds, "karkard")
    ds.Tables("view_karkard").Clear()
    da_view.Fill(ds,
    "view_karkard")

    EndIf
    'txt_code.Text = ""
    txt_karkard.Text = ""
    txt_saat.Text = ""
    txt_mablagh.Text = ""
    txt_maliat.Text = ""
    cmb_no.Text = ""
    cmb_mah.Text = ""
    cmb_sal.Text = ""
    txt_kol.Text = ""
    txt_rooz.Text = ""
    txt_mamooriat.Text = ""
    cmd_add.Enabled = True
    cmd_save.Enabled = False
    cmd_del.Enabled = False
    cmd_edit.Enabled = False
    cmd_undo.Enabled = False
    EndSub



    در
    cmd_save_Click و در این خط
    With
    ds.Tables("karkard").Rows(DataGridView1.CurrentRow.Index)
    این error : there is no row at position 0 را دارم

    item o در برنامه مربوط هست به txt_code که در DB ،پرایمری هست و با identity yes .
    من که هر چی دیتا ست رو چک کردم مقدار داره؟نمیدونم چرا؟

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

    نقل قول: مشکل در اضافه کردن رکورد

    نقل قول نوشته شده توسط alex_kh58 مشاهده تاپیک
    موقع اضافه کردن رکورد به Datatable پیغام زیر رامی دهد
    there is norow at position 0
    در حالی که بقیه فرم ها مشکلی ندارد و با روش یکسانی نوشته شده اند.
    گفتم شاید این خطارو دیده باشید و به نظرتون آشنا باشه. اگر کد هم لازم باشد بگید که اضافه کنم

            private void NbtnSave_Click(object sender, EventArgs e)
    {
    try
    {

    switch (_CurrentMode)
    {
    case ManipulationMode.Edit:
    this.Validate();
    this.trHesabBankiBindingSource.EndEdit();
    if (dpDataSet.trHesabBanki[trHesabBankiBindingSource.Position].RowState == DataRowState.Modified)
    {
    //gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki[trHesabBankiBindingSource.Position]);
    //gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki);
    }
    break;
    case ManipulationMode.New:
    this.Validate();
    this.trHesabBankiBindingSource.EndEdit();
    gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki[trHesabBankiBindingSource.Position]);
    //gGeneralDPFacade.HesabBanki_Update(dpDataSet.trHes abBanki);
    break;
    default:
    MessageBox.Show("BAD STATE");
    break;

    }
    _CurrentMode = ManipulationMode.Normal;
    EnableControls(ManipulationMode.Normal);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }


    کد HesabBanki_Update
          public void HesabBanki_Update(dpDataSet.trHesabBankiRow trHesabBankiRow)
    {
    try
    {
    _trHesabBankiTableAdapter.Update(trHesabBankiRow);
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }
    اون جایی که پیغام خطا میده رو مشخص کنید. این کدها هم برای من یکم ناآشنا هست.

    شما try و catch رو حذف کنید تا محل رخ دادن exception مشخص بشه. اون وقت دوستان زودتر می‌تونند جواب رو بدند.

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

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