PDA

View Full Version : جستجو در ویو و قرارگیری اطلاعات در تکست باکسها



raziyehbazargan
دوشنبه 23 مرداد 1391, 12:45 عصر
با سلام

یه سوال دارم ممنون میشم راهنمایی کنید.

من میخوام با وارد کردن شماره کانتینر و تاریخ در دو تکست باک فرمم ، در view که ایاد کردم جستجو کنه و مابقی اطلاعات اون ویو در تکست باکس های فرمم لود بشن
ممنون میشم راهنمایی کنید...

ehsan7007
دوشنبه 23 مرداد 1391, 13:11 عصر
سلام.
برای مابقیه ی اطلاعات باید داده هاتون رو مقید یا bind کنید.
این کد براساس کانتینر سرچ می کنه :

DataView dv = Ds.Tables[0].DefaultView;
dv.RowFilter = string.Format("con LIKE '%{0}%'", textBox1.Text.Trim());
dgw.DataSource = dv;
dgv.Columns[0].HeaderText = "تاریخ";
dgv.Columns[1].HeaderText = "کانتینر";
dgv.Columns[2].HeaderText = "جزئیات";

در ضمن منظورتون از ویو همون data grid view بود دیگه؟؟

raziyehbazargan
سه شنبه 24 مرداد 1391, 11:43 صبح
مرسی از راهنماییتون دوست عزیز اما منظورم datagridview نبود.منظور view هست چون من از چندین جدول دیتاها رو میخوایتم به ویو ایجاد کردم...

من تو data access layer به این صورت عمل کردم::


public SqlDataReader ExecuteDataReader(string cmdtext)
{
try
{
_SqlCommandText = cmdtext;
SqlCommand objSqlCommand = new SqlCommand(_SqlCommandText,_SqlCon);
SqlDataReader dtReader;
dtReader = objSqlCommand.ExecuteReader();
return dtReader;
}
catch (Exception)
{

throw;
}


و توی کلاسی که برای اون فرمم ایجاد کردم به این صورت مند رو نشوتم::






public SqlDataReader ReaderDataFromView()
{
string SQLSEL = "SELECT * FROM View_State WHERE ContainerNo='" + _ContainerId + "' , DamageDate='"+_DamageDate+"' ";
//SqlDataReader SDR;
return objDAL.ExecuteDataReader(SQLSEL);
}

و در آخر وقتی در فرم رو باتن کلکی میکنم که گزارش رو بر اساس اون دو فیلتر شماره کانیتنر و تاریخ بهم بده به این صورت:



private void btn_StateReport_Click(object sender, EventArgs e)
{
if((txtCntrNo!=null) && (txt_DamageDate!=null))
{
objSituation.ContainerId = txtCntrNo.Text;
objSituation.DamageDate = txt_DamageDate.Text;
SqlDataReader SDR;
SDR = objSituation.ReaderDataFromView();
if (SDR.Read())
{
this.txt_DamageResp.Text = SDR["DamageResp"].ToString();
}

}
}



اما در زمان اجرا در کلاسی که تعریف کردم این پیغام رو میده:


91244

hamidkh
سه شنبه 24 مرداد 1391, 13:13 عصر
سلام
دستور اس کیو ال شما مشکل داره
ابتدا اونو به صورت زیر اصلاح کنید :




string SQLSEL = "SELECT * FROM View_State WHERE ContainerNo='" + _ContainerId + "' and DamageDate='"+_DamageDate+"'";

raziyehbazargan
چهارشنبه 25 مرداد 1391, 12:38 عصر
نه دوست من مشکل از اون نیست

آیا من متدی که برای SqlDataReader و استفاده اون در کلاس و فرم نوشتم مشکلی داره؟؟

hamidkh
چهارشنبه 25 مرداد 1391, 12:54 عصر
کانکشنتون رو اول باز کنید.
به جای اینکه بنویسید
SqlDataReader dtReader;
dtReader = objSqlCommand.ExecuteReader();
مستقیما
SqlDataReader dtReader=objSqlCommand.ExecuteReader;
بذارید. و اینکه دستور اس کیو التون رو هم چک کنید که هم مقدار داشته باشه و درست باشه