PDA

View Full Version : سوال: مشکل با آپدیت در sql



john smithair
سه شنبه 09 فروردین 1390, 15:23 عصر
سلام
امید وارم که ایام به کام همه دوستان باشه.
من کد زیر رو نوشتم برای آپدیت یه سطر از جدول ام.


Dim cn AsSqlConnection
Dim da AsSqlDataAdapter
Dim ds AsNewDataSet
Dim dr AsDataRow
Dim cb AsSqlCommandBuilder
Dim s1, s2 AsString
ds.Clear()
s1 = "data source=.\sqlexpress;initial catalog=Payegah;integrated security=sspi;"
cn = NewSqlConnection(s1)
cn.Open()
s2 = "select * from table1 where Nam like N'" & ChangeForm.NamTxt.Text.Trim & "' and NameKhanevadegi like N'" & ChangeForm.NameKhanevedegi.Text.Trim & "'"
da = NewSqlDataAdapter(s2, cn)
da.Fill(ds, "table1")
dr = ds.Tables(0).Rows.Item(0)
Dim ms AsNewMemoryStream()
PersonelPicture.Image.Save(ms, AddDialog.PersonelPicture.Image.RawFormat)
Dim data AsByte() = ms.GetBuffer()
dr.Item(34) = data
cb = NewSqlCommandBuilder(da)
da = cb.DataAdapter
da.Update(ds, "table1")
MsgBox("تغییرات با موفقیت ثبت شد", MsgBoxStyle.Information)
Me.Close()

اما کار نمیکنه و ارور زیر رو میده.


Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.
من اول نام و نام خانوادگی فرد رو تو یه فرم میگیرم و بعد تو فرم بعدی سطری از جدول که اون نام و نام خونوادگی رو داره رو select می کنم و حالا می خوام یه ستون از سطر رو تغییر بدم که انجام نمیده.
خیلی به کمک اتون نیاز دارم.
من فقط یه دانشجو ام اگه کمک ام کنید خیلی در حق ام لطف کردید.ممنون.:لبخندساده:

asif1358
سه شنبه 09 فروردین 1390, 22:12 عصر
سلام
عبارت select شما شامل کلید اصلی نیست؛ به همین خاطر ایجاد خودکار Command توسط CommandBuilder انجام نمیشه

john smithair
چهارشنبه 10 فروردین 1390, 01:03 صبح
ممنون از توجه اتون!!
کلید یعنی چی؟
میشه بیشتر توضیح بدید دوست عزیز؟
یعنی باید چه چیزی رو بهش اضافه کنم؟

shadi khanum
چهارشنبه 10 فروردین 1390, 08:32 صبح
منظ.ر از کلید، کلید اصلی (Primary Key) جدولی که ازش Select زدین، باید اون هم توی Select که نوشتین وجود داشته باشه مثل آیدی کاربر یا کد کاربر یا هر چیزی که تو جدول SQL کلید.

john smithair
چهارشنبه 10 فروردین 1390, 10:18 صبح
خیلی ممنون!:لبخندساده:
انشاالله که با این کار درست شه،هنوز تستش نکردم.
ولی خب میشه توضیح بدید علت اینکه باید حتما PRIMARY KEY هم باشه چیه؟
مثلا اگه یه جدولی PRIMARY KEY نداشت چه اتفاقی میافته؟
ممنون