PDA

View Full Version : یک اررور اعصاب خورد کن



eyes_shut_number1
دوشنبه 21 آبان 1386, 10:14 صبح
سلام دوستان خسته نباشید
این اررور لعنتی چیه؟
Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.
اینم کدش
این قسمتی که قرمز کردم اررور میده!(توی شرط دوم)
جالبیشم اینه که اولیش درست کار میکنه


If rndPersonal.Checked = TrueThen
If row_edit_num = 0 Or row_edit_num = 1 Or row_edit_num = 2 Then
MessageBox.Show("شما نمیتوانید این فیلد را ویرایش کنید")
Else
cnn.Open()
Dim dap AsNew SqlDataAdapter("select * from " + str + " where personalid= " + str_check.ToString, cnn)
Dim ds AsNew DataSet
dap.Fill(ds, str)
'Dim LastModify As New DateTime
'LastModify = Now
'ds.Tables(0).Rows(0)("LastModify") = LastModify
old_row_value = ds.Tables(0).Rows(0)(row_edit_num).ToString
Dim str_new AsString = InputBox("مقداری که مایلید فیلد جدید بگیرد را وارد کنید")
If str_new = ""Then
cnn.Close()
ExitSub
Else

ds.Tables(0).Rows(0)(row_edit_num) = str_new
Dim scb AsNew SqlCommandBuilder(dap)
dap.Update(ds, str)
cnn.Close()
dgv.AutoGenerateColumns = True
dgv.DataMember = str
dgv.DataSource = ds
check_for_delete_edit += 1
EndIf

EndIf
Else
If row_edit_num = 0 Then
MessageBox.Show("شما نمیتوانید این فیلد را ویرایش کنید")
Else
cnn.Open()
Dim dap AsNew SqlDataAdapter("select * from " + str + " where personalid= " + str_check.ToString, cnn)
Dim ds AsNew DataSet
dap.Fill(ds, str)
old_row_value = ds.Tables(0).Rows(0)(row_edit_num).ToString
Dim str_new AsString = InputBox("مقداری که مایلید فیلد جدید بگیرد را وارد کنید")
ds.Tables(0).Rows(0)(row_edit_num) = str_new
Dim scb AsNew SqlCommandBuilder(dap)
dap.Update(ds, str)
cnn.Close()
dgv.AutoGenerateColumns = True
dgv.DataMember = str
dgv.DataSource = ds
check_for_delete_edit += 1
EndIf
EndIf

حامد مصافی
دوشنبه 21 آبان 1386, 13:31 عصر
1- جدول مورد نظر باید کلید اصلی داشته باشه.
2- جدول مورد نظر باید کلید خارجی و همچنین ارتباط نداشته باشه.
3- در دستور SELECT باید تمام ستون ها رو انتخاب کنید.