PDA

View Full Version : تعداد سطرهای تاثیر پذیرفته



rational unified process
چهارشنبه 10 مهر 1392, 16:21 عصر
سلام


SqlCommand cm3 = new SqlCommand();
cm3.CommandText = "select * from tblReserve where date=@date";
cm3.Parameters.AddWithValue("date", TextBox2.Text);
int count=(int)cm3.ExecuteScalar();
lblPishnehad.Text = count.ToString();

همانطور که میبینید میخوام با ExecuteScaler ،تعداد سطرهای تاثیر پذیرفته رو داخل یک لیبل(lblPishnehad) نمایش بدم ولی این ارور زیر میاد:
چه کار باید کرد؟


111397

aminireza65
چهارشنبه 10 مهر 1392, 18:34 عصر
اگه میخوای تعداد سطرهایی که select میشه رو پیدا کنی از تابع count در کوئری استفاده کن
select count(*) from tbl1
اما اگه میخوای تعداد سطرهایی که Update یا Delete میشن رو بگیری از کد زیر استفاده کن
SqlConnection con = newSqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["Database1ConnectionString1"].ConnectionString;
con.Open();
SqlCommand com = newSqlCommand();
com.Connection = con;
com.CommandText = "delete * from table1 ";
SqlDataReader dr = com.ExecuteReader();
dr.Read();
int x = dr.RecordsAffected;
تعداد سطرها رو میریزه تو متغیر x

rational unified process
پنج شنبه 11 مهر 1392, 00:34 صبح
اما اگه میخوای تعداد سطرهایی که Update یا Delete میشن رو بگیری از کد زیر استفاده کن

ممنون ازت ولی این موردی (RecordsAffected)که گفتی فقط برای delete و update و insert هست؛ منظور من به طور مشخص برای select هست که علی الظاهر باید از ExecuteScaler باید استفاده کرد؛پس سوالم رو یه بار دیگه مطرح میکنم:
چرا ExecuteScaler رو نمیتونم به int تبدیل کنم؟! به Int16یا Int 32 و یا Int64 هم تبدیل نشد.

SqlCommand cm3 = newSqlCommand();
cm3.CommandText = "select * from tblReserve where date=@date";
cm3.Parameters.AddWithValue("date", TextBox2.Text);
int count=(int)cm3.ExecuteScalar();
lblPishnehad.Text = count.ToString();

111418


اگه میخوای تعداد سطرهایی که select میشه رو پیدا کنی از تابع count در کوئری استفاده کن
select count(*) from tbl1


مثل همون مورد records affected کدهاش رو کامل بنویس برام.ممنون

aminireza65
پنج شنبه 11 مهر 1392, 03:24 صبح
تابع executescalar یه مقدار از نوع object برمیگردونه
com.commandtext=select count(*) from tbl1
object obj=com.executescalar
if(obj!=dbnull.value)
{
int x=int.parse(obj.tostring())
}
حالا مقداری که میخوای تو متغیره ایکسه