PDA

View Full Version : سوال: قرار گرفتن مقدار یه فیلد از بانک درون یه متغیر



neda_dela
یک شنبه 23 خرداد 1389, 10:39 صبح
با سلام
من میخام که مقدار یه فیلد رو از دورن بانک توسط message box به کاربرم اطلاع بدم .
من یه لیبل گذاشتم که وقتی کاربر روی اون کلیک می کنه مقدار اون فیلد بهش اطلاع داده بشه.
این چطوری امکان پذیره؟
متشکرم و منمون:لبخندساده:

sharifi_reza
یک شنبه 23 خرداد 1389, 10:52 صبح
سلام
شما ميتونيد از كامپوننت datagridview استفاده كنيد.اونوبا اطلاعات مورد نظر پركنيد سپس اطلاعات خودتونو در textbox نشون بدين.اگه خواستيد كدشو براتون ميفرستم.

M.YasPro
یک شنبه 23 خرداد 1389, 11:02 صبح
سلام

متد sqlCommand.ExecuteScalar (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.asp x) فیلد اول از اولین رکورد رو بر میگردونه .

بافرض این که کوئری شما باشه:


select name from person where id=1

مقدار فیلد name رو میتونید اینجوری نمایش بدید .


MessageBox.Show(sqlCommand.ExecuteScalar().ToStrin g());


موفق باشید .

neda_dela
یک شنبه 23 خرداد 1389, 14:22 عصر
سلام

متد sqlCommand.ExecuteScalar (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.asp x) فیلد اول از اولین رکورد رو بر میگردونه .

بافرض این که کوئری شما باشه:


select name from person where id=1

مقدار فیلد name رو میتونید اینجوری نمایش بدید .


MessageBox.Show(sqlCommand.ExecuteScalar().ToStrin g());


موفق باشید .
ممنون
لازمه یه مقدار توضیح بدم
ببین من این کار رو برای زمانی می خام که کاربرم رمز عبورش رو فراموش کرده . پایین صفحه یه لیبل گذاشتم با عنوان "رمز عبور خود را فراموش کرده ام"
وقتی که در ابتدای اجرای برنامه (برای اولین بار) کاربر نام کاربری و رمز عبورش رو تعریف می کنه یه فیلد دیگه رو هم که من اسمش رو گذاشتم "کلمه اشاره " تعریف می کنه
در واقع تیبل من سه تا فیلد داره: نام کاربری ، رمز عبور، کلمه اشاره
کلمه اشاره یه چیزیه مشابه hint توی ویندوز زمانی که رمز رو یادمون میره اگه قبلا براش تعریف کرده باشیم وقتی روی دکمه مربوط به اون کلیک می کنیم اون hint رو بهمون نشون میده و ما رو به یاد رمزمون می ندازه
حالا من میخام همون hint رو که الان به نام کلمه اشاره هست به کاربرم اطلاع بدم.
حالا با توجه به توضیحات شما این کد رو نوشتم ولی خطا میده:


private void label3_Click(object sender, EventArgs e)
{
SqlDataAdapter da = new SqlDataAdapter();
SqlConnection myConnection = new SqlConnection();
SqlCommand objCommand = new SqlCommand();
DataTable dt = new DataTable();
objCommand.CommandText = "select security from enter ";
objCommand.Connection = myConnection;
objCommand.CommandType = CommandType.Text;
myConnection.ConnectionString="Data Source=.;Initial Catalog=quran;Integrated Security=True";
MessageBox.Show("کلمه اشاره شما"+" "+objCommand.ExecuteScalar().ToString()+" "+"می باشد.");
}

خطاش هم اینه:

ExecuteScalar requires an open and available Connection. The connection's current state is closed.

M.YasPro
یک شنبه 23 خرداد 1389, 15:00 عصر
شما بدون باز کردن SqlConnection خواستید SqlCommand.ExecuteScalar رو اجرا کنید .
این دستور هم مثل ExecureReader و ExecuteNonQuery برای اجرا شدن نیاز به یه کانکشن باز داره .
موفق باشید .

mmd2009
یک شنبه 23 خرداد 1389, 15:51 عصر
SqlDataAdapter da = newSqlDataAdapter();
DataTable dt = newDataTable();



2 تا کد بالا رو هم پاک کنی مشکلی پیش نمیاد و راستی یه چیز هم مطئنم چرا شما متغیر سراسری واسه این 2 کد زیر تعریف نکردید که نیازی نباشه چندبار تو یک فرم تعریفشون کنید




SqlConnection myConnection = newSqlConnection();
SqlCommand objCommand = newSqlCommand();



و واسه خود کانکشن استریگ هم میتونید متغیر سراسری تعریف کنید و محدودیت واسه هیچ متغیری از فضای sqlclient قرار ندهید .

این کد رو قبل از پیام بنویس




myConnection .open()


این کد رو هم بعد از پیام




myConnection .close()


مشکلت حل میشه!!!