PDA

View Full Version : مشکل با دیتابیس



EbiPenMan
شنبه 26 آذر 1384, 14:00 عصر
سلام به همه ی دوستان
من در VB.NET یک برنامه نوشتم که یه بانک اطلاعاتی داره و این بانک 2 تا جدول داره.
اولیش مشکلی نداره چون (پرایمری کی) داره ولی دومی وقتی می خواهم تغییرات در آن جدول انجام دهم با یک خطا مواجه می شوم که به دلیل نداشتن همون (پرایمری کی) هست.

این جدول من جوری هست که باید باید هر فیلد تکراری داشته باشه اصلا اساس کار جدول به تکرار داشتن یک فیلد هست. و از هرکی پرسیدم می گن چاره کار همون پرایمری کی هست.

را ه دیگری وجود نداره که من بدون پرایمری کی این مشکل رو حل کنم.

نکته : دیتابیس من در اکسسز درست کار می کنه فقط در VB.NET این مشکل رو دارم.

و خطایی که گفتم اینه :

Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information

reham
شنبه 26 آذر 1384, 14:25 عصر
یه فیلد ID عددی در نظر بگیر که یکی یکی با هر رکورد زیاد بشه .

EbiPenMan
دوشنبه 28 آذر 1384, 12:59 عصر
از راهنماییت خیلی ممنونم .
یعنی به جز این راه راه دیگه ای نیست .

sh_mohsen taki
سه شنبه 29 آذر 1384, 00:20 صبح
با سلام
چرا راه دیگه ای هم هست اونم اینه که از dataadaptor گرافیکال استفاده نکنی و کد به روز ریانس رو روی یک Command دست ساز که توسط برنامه ایجاد کردی بنویسی
Dim da As New SqlClient.SqlDataAdapter
Dim cn As SqlClient.SqlConnection = New SqlClient.SqlConnection("user id=sa;initial catalog=amlak")
Dim com As SqlClient.SqlCommand = New SqlClient.SqlCommand("select username,[password] from userpass where username=N" + "'" + Session("user").Trim + "' and [password]=N'" + txtpass.Value.Trim + "'")
com.CommandType = CommandType.Text
cn.Open()
com.Connection = cn
da.SelectCommand = com
Dim ds As New DataSet
da.Fill(ds, "userpass")
cn.Close()
If ds.Tables("userpass").Rows.Count > 0 Then
com.CommandText = "Update userpass set [password]=N'" & txtnpass1.Value & "' where username=N'" & Session("user".Trim) & "'"
cn.Open()
com.ExecuteNonQuery()
cn.Close()
end if

lida
چهارشنبه 30 آذر 1384, 01:06 صبح
به جای [] ها باید مقادیری وارد کرد یا خودشان همین طوری نوشته شوند؟؟