View Full Version : چگونه اطلاعات یک فیلد در دیتابیس را بدست آوریم؟
koosha system
یک شنبه 16 مهر 1385, 14:21 عصر
من ASP Classic کار می کردم.رفتم تو کار دات نت.
ما تو ASP از این مسخره بازیها نداشتیم مثل DataList و ... (که دستوپای منو بسته،هرچند می دونم راه درستی داره ولی من....)
من الان مثلا می خوام تعداد هیت هام رو بشمورم این کارو می کنم:
1: یک sqldatasource می زارم و به Select Command رو Select * from tblsample ست می کنم
2: یک DetailsView می زارم بعد و Visible رو False می زارم.
3: بعد می رم با بد بختی با این کد مقدار موجود در یک فیلد در ردیف رو می خونم!!:
TextBox1.Text = DetailsView1.Rows.Item(1).Cells.Item(1).Text
فکر نکنم این راهش باشه!
(استفاده از DataBinding رو می دونم ولی Lable و کلا ست کردن یک متغیر متنی.عددی از دیتابیس رو نمی دونم)
ممنون می شم یک توضیح بدید در مورد این موضوع.
{ممنون می شم این مشکل رو حل کنید و بعد یک مرجع خوب فقط در مورد این موضوعات دیتابیسی یگید}
mahdi_negahi
یک شنبه 16 مهر 1385, 15:58 عصر
اگر بگوید دقیقا چیکار می خواهید بکنید راحتر دوستان راهنمایتان میکنند.خوب بینید در asp.net بر خلاف asp کلاسیک همه چیز در قالب مفهوم object و class است
در اینجا روشهای متعددی برای بدست آوردن یک فیلد از دیتا بیس داریم (البته روش شما جزء این روشها نمی باشد )
یکی از روشهای معمولی چنین است :
این یک متغییر است میتوانی هر جا تعریفش کنی و وظیفه اش برقراری ارتباط با db است
SqlConnection sqlConnection1 = new SqlConnection("Server=نام سرور;uid=username Sql;pwd=password Sql;database=Clinic;Connect Timeout=30");
حالا باید این ارتباط را باز کنی
sqlConnection1.Open();
حال برای اجرا کردن یک query در اس کیو ال باید دستور آن را بدهبد
SqlCommand Query = new SqlCommand("Select * From tblsample ",sqlConnection1);
خوب حالا باید آن را اجرا کنی توجه کن که دستور Sql بالا مقدار خروجی دارد پس این گونه عمل کن
SqlDataReader reader= Query.ExecuteReader();
reader تمام مقدار برگشتی را حاوی است
و این گونه به مقادیر دسترسی دارید
if(reader.HasRows)
{
while(reader.Read())
{
TextBox1.Text = reader2.GetString(3);
{
توجه 3 که میبینی شماره ستونی است که میخواهی به مقدارش دسترسی داشته باشی.
و همچنین حلقه while تا وقتی که سطری است ادامه پیدا میکند
koosha system
یک شنبه 16 مهر 1385, 22:40 عصر
خیلی پاسختون جالب بود و کمک کرد.
ولی من می خوام نام فیلد رو (یک رکورد رو باز کردیم و داریم) بدم و محتویات رو بگیرم.حتما باید با حلقه انجام بشه؟
zahracomputer
دوشنبه 17 مهر 1385, 06:15 صبح
سلام
من برای بدست آوردن مقدار یک فیلد خاص دستورات زیر را به کار بردم:
sqlsel1="Select name from table
cmd1=new SqlCommand(sqlsel1,sqlConnection1);
na=Convert.ToString(cmd1.ExecuteScalar());
که na از نوع string تعریف شده است.
موفق باشید
mahdi_negahi
دوشنبه 17 مهر 1385, 08:21 صبح
عزیز جان من کاری را میخواهی نمیفهمم لطفا بیشتر توضیح بده
SalarSoft
دوشنبه 17 مهر 1385, 08:59 صبح
احتمالا منظروتون اینطوریه
if(reader.Read())
TextBox1.Text = reader["FieldName"].ToString();
else
TextBox1.Text ="There is no data!";
koosha system
دوشنبه 17 مهر 1385, 12:38 عصر
دقیقا منظورم همین بود.
ممنون ار همگی
mahdi_negahi
دوشنبه 17 مهر 1385, 12:55 عصر
توی حلقه وقتی می زاری که چندین سطر را بخواهی
koosha system
دوشنبه 17 مهر 1385, 16:19 عصر
{توی حلقه وقتی می زاری که چندین سطر را بخواهی
}
متوجه شدم.ممنون
babak2000
سه شنبه 17 خرداد 1390, 10:52 صبح
دوستان وقتی از reader.Read استفاده میکنیم و فایل تکست را بایند میکنیم امکان آپدیت وجود داره ؟؟
من چنتا تکست باکس که میخواهم همزمان با هم آپدیت شوند یعنی بعد از اینکه کاربر تغییرات را اعمال کرد و دکمه ثبت اطلاعات را کلیک نمود
این تغییرات داخل دیتا بیس اعمال بشه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.