PDA

View Full Version : استفاده از DataReader در SQLDataSource



amir_monster
یک شنبه 20 آبان 1386, 08:12 صبح
سلام
آیا امکان داره در کنترل جدید sqldatasource از datareader استفاده کرد ؟
یا باید برای بکارگیری datareader باز هم از sqlcommand استفاده کنیم ؟

مثلا فرض کنید می خواهیم اگر اطلاعات از دیتابیس خوانده نشد پیغام منفی دهیم


while dr.read()
...


حال چگونه باید datareader را به sqldatasource مرتبط سازیم ؟

lvenoos
یک شنبه 20 آبان 1386, 11:06 صبح
میشه مشکل رو واضحتر بگید.منظورتون اینه که در هنگام خواندن اطلاعات از دیتابیس مشکل پیش بیاد یا دیتابیس خالی باشد؟

hamedgh
یک شنبه 20 آبان 1386, 12:01 عصر
کار نشد نداره !!! می تونی DataSourceMode ان را روی حالت DataReader تنظیم کنی

amir_monster
یک شنبه 20 آبان 1386, 12:26 عصر
درسته
اما چطور میشه از متد Read استفاده کرد ؟
مثلا فرض کنید در یک جستجو می خواهیم چک کنیم آیا اطلاعات مورد نظر از دیتابیس خوانده می شوند یا نه و در صورتی که مطلبی یافت نشد جواب منفی دهیم .

hamedgh
دوشنبه 21 آبان 1386, 23:52 عصر
کاری به متد read نداری رویداد زیر را می نویسی اگر چیزی پیدا نکرد ان خطا نمایش داده
می شود البته این برای Select است اگر برای update یا delete می خواهی در رویداد های ان بنویس جواب می دهد


protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
if (e.AffectedRows == 0)
{
Label1.Text = "هیچ موردی یافت نشد";
}
}

alipersia2006
پنج شنبه 11 شهریور 1389, 19:08 عصر
با سلام خدمت دوستان عزیز

پاسخ به این سوال که از دوستان پرسیده بودند :

آیا امکان داره در کنترل جدید SqlDatasource از DataReader استفاده کرد؟
جواب : بله فکر کنم بشه :لبخند::گیج:

یه نمونه کد براتون می زارم یه مروری بکنید شاید مشکلتونو حل بکنه



SqlDataSource.SelectCommand="SELECT * FROM Table1";
SqlDataSource.SelectCommandType=SqlDataSourceComma ndType.Text;
SqlDataSource.ConnectionString= ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
SqlDataSource.DataSourceMode=SqlDataSourceMode.Dat aReader;
SqlDataReader DR ;
DataSourceSelectArguments arg = newDataSourceSelectArguments();
DR = (SqlDataReader) SqlDataSource.Select(arg);

DR.Read();

do
{
//Your codes here
}
While (DR.Read());