PDA

View Full Version : مشکل در Bind کردن داده ها به Grid



hossein fatemi
سه شنبه 24 بهمن 1385, 09:17 صبح
با سلام

یک دستور Select Inner Join دارم که داخل یک Reader قرار داره و به Source یک Grid اتصال دادم منتها در Pagin گرید مشکل دارم.(به دلیل ذات خوانده شدن داده ها در Reader)
دستور رو داخل Query Builder هم نوشتم تا به DataSet اتصال داده بشه :
DataAdapter.Fill (DataSet

اما Error زیر نمایش داده می شود:

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

چطور می تونم دستور Select Inner Join رو داخل DataSet بریزم تا مشکلی در Paging گرید نداشته باشم.


با تشکر

bidad
سه شنبه 24 بهمن 1385, 13:02 عصر
لطفا کدش رو بزار

hossein fatemi
سه شنبه 24 بهمن 1385, 17:42 عصر
دستور Select Inner Join
OdbcConnection1.Open()
sql = "SELECT [Selecting Program].Lesson_Code, [Group Lesson Code].Lesson_Name, [Selecting Program].[Group], [Selecting Program].Teacher_Name,[Group Lesson Code].Befor_Code, [Group Lesson Code].After_Code, [Group Lesson Code].Teory_Unit, [Group Lesson Code].Acting_Unit, [Selecting Program].Class_Day, [Selecting Program].Class_Time, [Selecting Program].Exam_Day, [Selecting Program].Exam_Time,[Selecting Program].Class_Number FROM ([Selecting Program] INNER JOIN [Group Lesson Code] ON [Selecting Program].Lesson_Code = [Group Lesson Code].Lesson_Code) where ([Selecting Program].Step_Code =" + Request.Cookies("cook10").Value + ") and ([Selecting Program].Course_Code = " + Request.Cookies("cook9").Value + ")"
'OdbcDataAdapter1.SelectCommand.ExecuteReader()
OdbcCommand1.CommandText = sql
OdbcCommand1.Connection = OdbcConnection1
reader1 = OdbcCommand1.ExecuteReader
'OdbcDataAdapter1.Fill(DataSet91)
DataGrid1.DataSource = reader1
DataGrid1.DataBind()
reader1.Close()

صفحه بندی گرید
PrivateSub DataGrid1_PageIndexChanged(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEvent Args) Handles DataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataSource = DataSet91
DataGrid1.DataBind()
EndSub

با این حساب در زمان Paging گرید مشکل دارم و اگه داخل Query Builder DataAdapter دستور Select رو بنویسم Error ذکر شده نمایش داده میشه
چطور میشه Reader رو داخل Dataset ریخت تا به Source گرید اتصال داده بشه و مشکلی در Paging آن بوجود نیاد

با تشکر

bidad
چهارشنبه 25 بهمن 1385, 15:51 عصر
منظورت رو از ریختن ریدر داخل دیتا ست متوجه نمیشم
اما اگه میخوای دیتا گریدت رو به یه دیتا ست بایند کنی
این کارا رو بکن . مثلا


Dim strConnection, sql As String
strConnection = "your string connection"
sql = "youe select code"
Dim myConnection As New Odbc.OdbcConnection(strConnection)
Dim myDataAdaptor As New Odbc.OdbcDataAdapter(sql, myConnection)
Dim dst As New DataSet
myDataAdaptor.Fill(dst, "myTable")
myDataGrid.datasource = dst.Tables("myTable")

hossein fatemi
چهارشنبه 25 بهمن 1385, 22:30 عصر
ببین چون Readre یکبار داده ها رو می خونه و نمی تونه داده ها رو داخل خودش ذخیره کنه در Paging گرید مشکل ایجاد میشه . به محض اینکه صفحه 2 گرید رو کلیک می کنی چیزی نشون داده نمیشه چون Reader همه داده ها رو یکبار می خونه اما DataSet چون داده ها رو ذخیره میکنه مشکلی ایجاد نمی کنه
در نتیجه چون من نمی تونم دستور Select Inner Join رو داخل DataSet بریزم مجبورم اونو داخل Reader قرار بدم اما مشکل ذکر شده ایجاد میشه
نتیجه اینکه من چطوری می تونم نتایج Select رو داخل یه جایی مثل DataSet بریزم که قابلیت ذخیره شدن داشته باشه تا مشکلی در Pagin گرید ایجاد نشه
اصولا در کار با گریدها DataSet رو به گرید اتصال می دن نه یک Reader رو چون قابلیت ذخیره سازی داده ها رو نداره

با تشکر

hossein fatemi
جمعه 27 بهمن 1385, 10:42 صبح
آقا تو رو به خدا یکی این سوال ما رو جواب بده
فکر نکنم این قدر جوابش سخت باشه

linux
جمعه 27 بهمن 1385, 15:02 عصر
آقا تو رو به خدا یکی این سوال ما رو جواب بده
فکر نکنم این قدر جوابش سخت باشه
شما یک sqldatareader را نمی توانی به عنوان دیتاسورس برای گرید معرفی کنی
دیتاسورس می تونه یک دیتاتیبل یا یک آرایه باشه