مشکل در استفاده از Datareader
سلام من دارم واسه دستورات ارتباط دهی پایگاه داده کلاس مینویسم تو کلاس 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;
}
نقل قول: مشکل در کلاس نویسیه دیتا ریدر
SqlDataReader رو نباید new کرد
اینطوری بنویس درست میشه
SqlDataReader dr= com.ExecuteReader();
نقل قول: مشکل در کلاس نویسیه دیتا ریدر
مهندس دمت گرم تو کلاس دیتا تیبلم میتونی راهنماییم کنی ببین من میخوام یه پارامتر واسه درج سورس دیتاگریدویو داشته باشم که سورس میشه همین 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;
}
نقل قول: مشکل در کلاس نویسیه دیتا ریدر
خب شما باید اینطوری بنویسی
dgv.DataSource = class.adapter("select * from ....");
نقل قول: مشکل در کلاس نویسیه دیتا ریدر
یک سوال دیگه دوست عزیز واسه مسیج باکس دیتا ریدر چطور باید تعریف کنی تو کلاس!
می خوام اگه مقدار وجود نداشت پیغام بده
و اینکه بخوام بگم در صورت درست بودن این فرم ببند فرم دیگه رو باز کن بچطوریه؟ باید تو کلاس بنویسیش یا تو فرم با سپاس
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;
}
نقل قول: مشکل در کلاس نویسیه دیتا ریدر
شما باید تو فرم کدها رو بنویسی
بهتره از 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
نقل قول: مشکل در کلاس نویسیه دیتا ریدر
با دیتا تیبلم همین مشکل باز هستش من الان مشکلم اینه تو دستور فراخوانی وقتی تو فرم مینویسمش هرچی بعدش بنویسم اجرا میشه می خوام یه جوری بهش حالی کنم اگه شرط درست بود مثلا این بیغام موفقیتو بده یا فلان فرم باز کن (برای لاگین شدن)
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;
}
}