PDA

View Full Version : چگونه اطلاعات یک فیلد در دیتابیس را بدست آوریم؟



koosha system
یک شنبه 16 مهر 1385, 13: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, 14: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, 21:40 عصر
خیلی پاسختون جالب بود و کمک کرد.
ولی من می خوام نام فیلد رو (یک رکورد رو باز کردیم و داریم) بدم و محتویات رو بگیرم.حتما باید با حلقه انجام بشه؟

zahracomputer
دوشنبه 17 مهر 1385, 05:15 صبح
سلام
من برای بدست آوردن مقدار یک فیلد خاص دستورات زیر را به کار بردم:
sqlsel1="Select name from table
cmd1=new SqlCommand(sqlsel1,sqlConnection1);
na=Convert.ToString(cmd1.ExecuteScalar());
که na از نوع string تعریف شده است.

موفق باشید

mahdi_negahi
دوشنبه 17 مهر 1385, 07:21 صبح
عزیز جان من کاری را میخواهی نمیفهمم لطفا بیشتر توضیح بده

SalarSoft
دوشنبه 17 مهر 1385, 07:59 صبح
احتمالا منظروتون اینطوریه


if(reader.Read())
TextBox1.Text = reader["FieldName"].ToString();
else
TextBox1.Text ="There is no data!";

koosha system
دوشنبه 17 مهر 1385, 11:38 صبح
دقیقا منظورم همین بود.
ممنون ار همگی

mahdi_negahi
دوشنبه 17 مهر 1385, 11:55 صبح
توی حلقه وقتی می زاری که چندین سطر را بخواهی

koosha system
دوشنبه 17 مهر 1385, 15:19 عصر
{توی حلقه وقتی می زاری که چندین سطر را بخواهی
}
متوجه شدم.ممنون

babak2000
سه شنبه 17 خرداد 1390, 09:52 صبح
دوستان وقتی از reader.Read استفاده میکنیم و فایل تکست را بایند میکنیم امکان آپدیت وجود داره ؟؟

من چنتا تکست باکس که میخواهم همزمان با هم آپدیت شوند یعنی بعد از اینکه کاربر تغییرات را اعمال کرد و دکمه ثبت اطلاعات را کلیک نمود

این تغییرات داخل دیتا بیس اعمال بشه