PDA

View Full Version : سوال: مشکل در برگرداندن دیتاست حاوی رکورد مورد نظر از کلاس به aspxفایل



amordad
شنبه 18 مهر 1388, 13:04 عصر
با سلام:
دوستان من در یک کلاس رکوردی را که میخوهم پیدا میکنم اما برای این که آن رکورد را در قالب یک دیتاست به بر نامه خود return کنم و فیلد هایش را مثلا در چند تکست باکس نشان دهم دچار مشکل شده ام .کد کلاس را تا پیدا کردن رکورد گزاشته ام و کد ASPX را لطفا راهنمایی کنید.

کلاس POST.CS:

publicDataSet loadforupdate(string title,int user_id)
}
SqlConnection connection = newSqlConnection(ConfigurationManager.ConnectionSt rings["simpleblogConnectionString"].ToString
( )connection.Open
;(SqlCommand cmd = newSqlCommand("sp_posts_selectall", connection
;cmd.CommandType = CommandType.StoredProcedure
;( )SqlDataAdapter adapter = newSqlDataAdapter
;adapter.SelectCommand = cmd
;( )DataSet dsPersons = newDataSet
;("adapter.Fill(dsPersons, "posts


(if (dsPersons.Tables["posts"].Rows.Count > 0
}
(foreach (DataRow i in dsPersons.Tables["posts"].Rows
}
(if (i["title"].ToString() == title
}
( ( )if (i["user_id"].ToString() == user_id.ToString
}


;( )DataSet a = newDataSet

حالا می خواهم دیتاست را از این فیلد پر کنم و پاس دهم
}
}
}
}
}
--------------------------------------
صفحه ASPX:
;( )POST SAMPLE =NEW POST
??????????????=TEXTBOX1.TEXT

mahdi_farhani
شنبه 18 مهر 1388, 22:31 عصر
دوست عزیز من سوالتون رو درست متوجه نشدم ، ولی نکته ای که تو برنامه نویسی شما دیدم این بود که برای پیدا کردن یک مقدار از بانک از حلقه استفاده کردید !!! که این اشتباه است
به این دو دستور نگاه کن

Select * from MyTable
و

Select * from MyTable Where title=@title and userId=@userId
به احتمال قوی شما از دستور اول در SP استفاده کردید !!
ولی بهتره دو تا پارمتر در Sp تعریف کنی و در برنامه اونها را پاس بدی و دیگه مشکل پر کردن دیتاسیت هم نخواهی داشت

amordad
شنبه 18 مهر 1388, 22:51 عصر
مهدی جان سلام
در باره بهینه نبودن این کد فرمایش شما صحیح است. اما من با همین شرایط می خواهم رکورد پیدا شده را به صفحه خود پاس دهم تا بتوانم مقادیر فیلد های درون آن را آنجا بخوانم و درون تکست باکس ها قراردهم و...... اگر ممکن است بگویید چگونه این مقدار را در یک dataset قرار دهم و چگونه آن dataset را پاس دهم و آنجا ((در aspx )) چگونه آن دیتاست را بخوانم؟؟؟

mahdi_farhani
شنبه 18 مهر 1388, 22:57 عصر
خوب دوست عزیز من اینکار را بهتون گفتم که چطوری انجام بدید ولی شما نگرفتید منظور من چیه ;)
ببینید زمانی که شما در هنگام فراخوانی دیتا (Fetch) شرط بزارید پس در نتیجه فقط اون دیتا خوانده میشه و زمانی که دستور Fill را استفاده می کنید در دیتاست نگه داری میشه .کله دیتا ست رو شما برگردوندید حالا فقط کافیه به این شکل ازش استفاده کنید

MyDataSet.Tables[0].Rows[0]["myField"]
* البته بهتره از TypedDataset ها استفاده کنید
-------------------
حالا اگر دوست داری به همین روش اشتباه بالا ادامه بدی فقط کافی از این دستورات استفاده کنی


dsPoerson.Tables[0].ImportRow(i)

amordad
یک شنبه 19 مهر 1388, 02:12 صبح
آقا مهدی عزیز دوباره سلام:
چطوری می شود ( dsPoerson.Tables[0].ImportRow( i را داخل یک دیتاست خالی کپی کرد .؟؟؟

mahdi_farhani
یک شنبه 19 مهر 1388, 07:34 صبح
منظورتو متوجه نشدم !!!!
دوست عزیز اگر اون راه حل اولی که بهت گفتم را انجام بدی باور کنم تمام مشکلاتت حل میشه !!!!!!!!

amordad
یک شنبه 19 مهر 1388, 18:25 عصر
مهدی جان دستت درد نکند کمکت موثر واقع شد و فعلا از این مشکل رها شدم تا بعد....