PDA

View Full Version : سوال: گرفتن مقدار از دیتابیس بصورت عدد



ya30ien2
شنبه 22 مرداد 1390, 16:27 عصر
سلام
من با کد زیر مقدار رو از دیتابیس میگیرم
حالا میخوام مستقیم مقداری رو که میگیرم بصورت عددی باشه نه رشته

SqlConnection connect = new SqlConnection(@"Data Source=YA30IEN-PC;Initial Catalog=Personnel;Integrated Security=True");
connect.Open();
SqlCommand cmd = new SqlCommand();
string str = "select * from usern where username='{0}'";
str = string.Format(str, luser.Text);
cmd.CommandText = str;
cmd.Connection = connect;
cmd.ExecuteNonQuery();
SqlDataAdapter adp = new SqlDataAdapter();
DataSet dt = new DataSet();
adp.SelectCommand = cmd;
adp.Fill(dt, "name");
connect.Close();
DataView dv = new DataView(dt.Tables["name"]);
cm = (CurrencyManager)(this.BindingContext[dv]);
lname.DataBindings.Add("Text", dv, "name");

Reza_Yarahmadi
شنبه 22 مرداد 1390, 18:46 عصر
حالا میخوام مستقیم مقداری رو که میگیرم بصورت عددی باشه نه رشته
اطلاعات دریافتی از دیتابیس بصورت Object میاد نه رشته ای ، در حالت عادی هیچ راهی برای دریافت عددی وجود نداره و خودتون باید Cast رو انجام بدید.

ya30ien2
شنبه 22 مرداد 1390, 18:53 عصر
int a = Int32.Parse(lsum.Text);
int b = Int32.Parse(lid.Text);
int c = a / b;
آخه من این کد رو نوشتم
اما ارور میگیره
من میخوام یک ستون رو که قبلا جمع کردم تقسیمبر تعدادشون کنم
یجوری مثل معدل
بازم تشکر از جوابتون

Esmail Solhkhah
شنبه 22 مرداد 1390, 19:27 عصر
int a = Int32.Parse(lsum.Text);
int b = Int32.Parse(lid.Text);
int c = a / b;
آخه من این کد رو نوشتم
اما ارور میگیره
من میخوام یک ستون رو که قبلا جمع کردم تقسیمبر تعدادشون کنم
یجوری مثل معدل
بازم تشکر از جوابتون



تو دستور SQL میتونی از AVG استفاده کنی که خودش میانگین میگیره

ya30ien2
شنبه 22 مرداد 1390, 19:30 عصر
میشه با توجه به کد بالا یک نمونه دستور بنویسید
بازم ممنون

Esmail Solhkhah
شنبه 22 مرداد 1390, 19:38 عصر
decimal Avg = 0;

SqlConnection connect = new SqlConnection(@"Data Source=YA30IEN-PC;Initial Catalog=Personnel;Integrated Security=True");

using (SqlCommand cmd = connect.CreateCommand())
{
cmd.CommandText = "SELECT AVG(Mablag) AS Mablag FROM Forosh";

if (connect.State != ConnectionState.Open)
connect.Open();

Avg = (decimal)cmd.ExecuteScalar();

if (connect.State == ConnectionState.Open)
connect.Close();
}

textBox1.Text = Avg.ToString();



با فرض وجود تیبل فروش که شامل فیلدی از نوع دسیماله و مبالغ فروش اونجا ذخیره میشه