نوشته شده توسط
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 .
من که هر چی دیتا ست رو چک کردم مقدار داره؟نمیدونم چرا؟