PDA

View Full Version : دریافت مقدار bool در data reader



T.Eftekhari
شنبه 01 شهریور 1393, 10:51 صبح
سلام خسته نباشید
من تو جدول sql ام یه مقدار بیت دارم

حالا می خوام فراخونی ش کنم


SqlCommand sqlcmdrang = new SqlCommand();
SqlDataReader drrang;
sqlcmdrang.Connection = sqlconct;
sqlcmdrang.CommandText = "select darirang from modelghate where namghateh = N'"+cmbnam.SelectedItem.ToString().Trim()+"'";
drrang = sqlcmdrang.ExecuteReader();
drrang.Read();
if (Int32.Parse(drrang.GetSqlBinary(0).ToString()) == 1 )


کد commandtext ام درسته تو خود sql امتحان کردم
حالا مشکل کجاست که مقدار نمی تونم انتقال بدم

veniz2008
شنبه 01 شهریور 1393, 11:19 صبح
سلام.
وقتی که قراره فقط یک مقدار برگشت داده بشه (یک مقدار یعنی فقط یک سطر که فقط یه سلول داره مثل تعداد رکوردهای یک جدول، مثل جمع مقادیر یک ستون عددی و ...) می تونید از ExecuteScalar استفاده کنید که مخصوص این کار طراحی شده.اینم توجه کنید که نوشتن دستورات select به شیوه ای که شما نوشتید، خطر sql injection داره که براحتی قابل هک شدن است. بنابراین عادت کنید که از پارامترها استفاده کنید :

SqlConnection con = new SqlConnection("server=.\\md2012;database=test;integrated security=true");
SqlCommand sqlcmdrang = new SqlCommand("select darirang from modelghate where namghateh = @namghateh",con);
sqlcmdrang.Parameters.AddWithValue("@namghateh",cmbnam.SelectedItem.ToString().Trim());
con.Open();
bool result = (bool)sqlcmdrang.ExecuteScalar();
con.Close();
if(Convert.ToInt32(result) == 1)
{
// دستورات مورد نظر
}
موفق باشید.