PDA

View Full Version : مبتدی: مشکل در استفاده از Datareader



piter11
یک شنبه 11 آبان 1393, 16:54 عصر
سلام من دارم واسه دستورات ارتباط دهی پایگاه داده کلاس مینویسم تو کلاس sqldatareader
زیر که نوشتم ارور میده روی خط New sqldatareader کسی میدونه مشکلش چیه ؟

ارور=Error 1 The type 'System.Data.SqlClient.SqlDataReader' has no constructors defined



public SqlDataReader sreader(string query)
{
SqlDataReader dr = new SqlDataReader();
com.Connection = con;
com.CommandText = query;
con.Open();

dr = com.ExecuteReader();
if (dr.HasRows == true)
{
dr.Read();
}
con.Close();
return dr;


}

hamid_hr
یک شنبه 11 آبان 1393, 17:12 عصر
SqlDataReader رو نباید new کرد
اینطوری بنویس درست میشه


SqlDataReader dr= com.ExecuteReader();

piter11
یک شنبه 11 آبان 1393, 18:31 عصر
مهندس دمت گرم تو کلاس دیتا تیبلم میتونی راهنماییم کنی ببین من میخوام یه پارامتر واسه درج سورس دیتاگریدویو داشته باشم که سورس میشه همین temp ولی نمی دونم تو کلاس چطور مشخص کنم مثلا بعد از fill کردن temp بگم DATAGRIDVIEW1.DATAsource=temp

public DataTable adapter(string doquery)
{


da.SelectCommand.CommandText=doquery;
da.SelectCommand.Connection=con;
DataTable temp=new DataTable();
con.Open();
da.Fill(temp);


con.Close();
return temp;



}

hamid_hr
یک شنبه 11 آبان 1393, 18:49 عصر
خب شما باید اینطوری بنویسی



dgv.DataSource = class.adapter("select * from ....");

piter11
دوشنبه 12 آبان 1393, 00:00 صبح
یک سوال دیگه دوست عزیز واسه مسیج باکس دیتا ریدر چطور باید تعریف کنی تو کلاس!
می خوام اگه مقدار وجود نداشت پیغام بده
و اینکه بخوام بگم در صورت درست بودن این فرم ببند فرم دیگه رو باز کن بچطوریه؟ باید تو کلاس بنویسیش یا تو فرم با سپاس
public SqlDataReader sreader(string query,string msgerror)
{

com.Connection = con;
com.CommandText = query;
con.Open();

SqlDataReader dr = com.ExecuteReader();
if (dr.HasRows == true)
{
dr.Read();

con.Close();


}
else
{


}

return dr;



}

hamid_hr
چهارشنبه 14 آبان 1393, 09:18 صبح
شما باید تو فرم کدها رو بنویسی
بهتره از datatable برا خروجی استفاده کنی
به این صورت


public DataTable executeDTReader(string sql)
{
using (SqlConnection cnn = new SqlConnection(scon))
{
cnn.Open();
DataTable ds = new DataTable();
using (SqlDataAdapter sda = new SqlDataAdapter(sql, cnn))
{
sda.Fill(ds);
cnn.Close();
return ds;
}
}
}


بعد تو فرم نگاه کن اگه اطلاعاات نداشت پیغامتو میدی



یه نمونه آموزش برنامه نویسی سه لایه البته مرجع زیاد هست
http://csharpiha.mihanblog.com/extrapage/selaye

piter11
چهارشنبه 14 آبان 1393, 14:17 عصر
با دیتا تیبلم همین مشکل باز هستش من الان مشکلم اینه تو دستور فراخوانی وقتی تو فرم مینویسمش هرچی بعدش بنویسم اجرا میشه می خوام یه جوری بهش حالی کنم اگه شرط درست بود مثلا این بیغام موفقیتو بده یا فلان فرم باز کن (برای لاگین شدن)

public SqlDataReader sreader(string query,string msgerror)
{

com.Connection = con;
com.CommandText = query;
con.Open();

SqlDataReader dr = com.ExecuteReader();
if (dr.HasRows == true)
{
dr.Read();

con.Close();
return dr;


}
else
{
dr.despose();
con.cloce();

return dr;
}






}