PDA

View Full Version : مبتدی: بازگرداندن مقدار با دستور select



arezoo_helpful
پنج شنبه 14 اردیبهشت 1391, 15:17 عصر
با سلام یک سوال فوری داشتم که ممنون می شم دوستان کمک کنند.
یک جدول داریم که شامل دو فیلد است,یکی از آنها اسم و دیگری شماره تلفن می باشد.می خواهیم وقتی که اسم را وارد کردیم,شماره تلفن آن شخص را در یک متغیر بریزد.اما وقتی دستور select را اجرا می کنم نمیدونم چجوری آن را در یک متغیر بریزم.ممنون میشم کمکم کنید.



SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["mycs"].ConnectionString;
con.Open();

SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "SELECT phone FROM users where user_name=@user_name ";


com.Parameters.AddWithValue("user_name", txt_username.Text);
com.ExecuteNonQuery();
con.Close();
con.Dispose();
com.Dispose();

اصلا این کدها درست هستند؟
حالا میخواهیم آن شماره تلفن در یک متغیر برود.چجوری این کار رو انجام بدم.

afg_javan
پنج شنبه 14 اردیبهشت 1391, 15:25 عصر
به جایی که از ExecuteNonQuery کنی برو از ExecuteScalar استفاده کن، به صورت زیر
com.CommandText = "SELECT phone FROM users where user_name=@user_name ";


com.Parameters.AddWithValue("user_name", txt_username.Text);
int ph = (int)com.ExecuteScalar();
درست بودن کد هم به نیاز شما بستگی داره

hamid_shrk
پنج شنبه 14 اردیبهشت 1391, 15:30 عصر
بهتره که از استورپروسیجرها استفاده کنید ، به هر حال واسه گرفتن مقدار راههای زیادی هست مثل دیتاریدر و دیتا تیبل و دیتا ست و.. که من با دیتا ریدر رو میذارم خودتون استفاده کنید.
بجای خط 11 از کد بالا این دستورات رو بذارید :


SqlDataReader SqlDR = com.ExecuteReader();
if (SqlDR.HasRows)
{
SqlDR.Read();
string phone = SqlDR["phone"].ToString();
}