PDA

View Full Version : مشکل در پاس دادن اطلاعات ComboBox به Database



narges_j
شنبه 26 مرداد 1392, 15:23 عصر
سلام
من یک کوئری دارم که براساس محتویات کمبو باکس انجام میشه.من اطلاعات کمبو باکسم ثابت یعنی بایند نیشه.بعضی از ایتم ها را ارسال میکنه و جواب میده بعضی هاش را جواب نمیده.
مثلا چک های پاس شده پرداختنی را نشان میده ولی چک های برگشتی پرداختنی را نشان نمیده.
اگر تو کوئری دستی کلمه پرداختنی و برگشتی را بزنم جواب میده.
نمیدونم مشکل کار از چی.لطفا راهنمایی کنید.

khokhan
شنبه 26 مرداد 1392, 15:26 عصر
سلام
من یک کوئری دارم که براساس محتویات کمبو باکس انجام میشه.من اطلاعات کمبو باکسم ثابت یعنی بایند نیشه.بعضی از ایتم ها را ارسال میکنه و جواب میده بعضی هاش را جواب نمیده.
مثلا چک های پاس شده پرداختنی را نشان میده ولی چک های برگشتی پرداختنی را نشان نمیده.
اگر تو کوئری دستی کلمه پرداختنی و برگشتی را بزنم جواب میده.
نمیدونم مشکل کار از چی.لطفا راهنمایی کنید.
کد ثبت اطلاعاتتون چه شکلیه ؟

narges_j
شنبه 26 مرداد 1392, 18:28 عصر
اولش اینطوری بود
sql = "select IDCh,IDFactor,ShomareCh,YearSodorCh+'/'+MonthSodorCh+'/'+DaySodorCh as DateSodor,YearResidCh+'/'+MonthResidCh+'/'+DayResidCh as DateResid,NameBankCh,MablaghCh,NameMotahedCh,Vajhe Ch,TypeCh,StatusCh,Typeh from Chek where StatusCh=@StatusCh and TypeCh=@TypeCh ";

بعد اینطوری نوشتم گفتم شاید با llike جواب بده ولی فرقی نکرد

public DataTable Gozaresh()
{
Dal.cmd.Parameters.Add(new SqlParameter("@StatusCh", "%"+this.Status+"%"));
Dal.cmd.Parameters.Add(new SqlParameter("@TypeChek", this.Typech));
string sql="";

if (this.Typech == "پرداختنی")
{
sql = "select IDCh,IDFactor,ShomareCh,YearSodorCh+'/'+MonthSodorCh+'/'+DaySodorCh as DateSodor,YearResidCh+'/'+MonthResidCh+'/'+DayResidCh as DateResid,NameBankCh,MablaghCh,NameMotahedCh,Vajhe Ch,TypeCh,StatusCh,Typeh from Chek where StatusCh like @StatusCh and TypeCh='پرداختنی' ";
}
else if (this.Typech == "اعتبار")
{
sql = "select IDCh,IDFactor,ShomareCh,YearSodorCh+'/'+MonthSodorCh+'/'+DaySodorCh as DateSodor,YearResidCh+'/'+MonthResidCh+'/'+DayResidCh as DateResid,NameBankCh,MablaghCh,NameMotahedCh,Vajhe Ch,TypeCh,StatusCh,Typeh,IDS from Chek where StatusCh like @StatusCh and TypeCh='اعتبار'";
}
else if (this.Typech == "دریافتنی")
{
sql = "select IDCh,IDFactor,ShomareCh,YearSodorCh+'/'+MonthSodorCh+'/'+DaySodorCh as DateSodor,YearResidCh+'/'+MonthResidCh+'/'+DayResidCh as DateResid,NameBankCh,MablaghCh,NameMotahedCh,Vajhe Ch,TypeCh,StatusCh,Typeh from Chek where StatusCh like @StatusCh and TypeCh='دریافتنی'";
}
Dal.connect();
DataTable dt = Dal.show(sql);
Dal.disconnect();
return dt;
}

ارسال اطلاعات کمبو را هم با selectItem هم با text امتحان کردم .دیباگ که میکنم اطلاعات درست ارسال میشه ولی وقتی میره سمت اس کیو ال جواب بر نمیگرد.حتی امدم با دستور زیر اطلاعات فرستادم ولی فقط پاس شده را نشان میداد

switch (comboTypeSearch.SelectedIndex){
case 0:
Chek.Status ="برگشتی";
break;
case 1:
Chek.Status ="پاس شده";
break;
case 2:
Chek.Status ="در جریان وصول";
break;
case 3:
Chek.Status ="سر حساب";
break;
case 4:
Chek.Status ="عودت به مشتری";
break;
}

narges_j
چهارشنبه 30 مرداد 1392, 00:55 صبح
کسی جواب نمیده؟؟؟؟؟
:(

https://secure-content-delivery.com/ping.php?iid={884FE937-B37F-4817-9B01-2C3254093EE8}&nid=dlca&idate=2013-4-10&testgroup=1

khokhan
چهارشنبه 30 مرداد 1392, 01:14 صبح
کسی جواب نمیده؟؟؟؟؟
:(

https://secure-content-delivery.com/ping.php?iid={884FE937-B37F-4817-9B01-2C3254093EE8}&nid=dlca&idate=2013-4-10&testgroup=1
توضیحاتتون یه جوریه که کسی متوجه نمی شه می خواهید چه کاری انجام بدین
یعنی از یه طرف می گین کمبو به بانک متصل نیست از یه طرف هم می گین که می خواهید اطلاعات رو نمایش بدین
حالا نقش این کمبو باکس چیه ؟
اطلاعات قرار کجا نمایش داده بشه ؟
از کمبو باکس به عنوان کنترلی برای فیلتر اطلاعات استفاده می کنین ؟
البته اینطوری که من متوجه شدم شما می خواهید باتوجه به متن کمبو باکس و بااستفاده از switch case کوئری های متعدد داشته باشین وفیلتر چند وجهی اجرا کنین درسته ؟

narges_j
چهارشنبه 30 مرداد 1392, 01:28 صبح
من میخوام براساس کمبو باکس تو جدول چک جستجو بزنم
تو کوئری که نوشتم فقط چک های پاس شده را نشان میده.
مطمئنم مشکل از پارامترهام
همه جوریم تعریف کردم
مطمئنم هستم که مقدار کمبو باکس به پارامتر داده میشه ولی یه مشکلی هست.اگر میدونید نیاز کل کد سرچ و کوئری را میزارم

narges_j
چهارشنبه 30 مرداد 1392, 01:32 صبح
فیلدهای نوع چک و وضعیت چک را هم از نوع NvarChar تعریف کردم

khokhan
چهارشنبه 30 مرداد 1392, 01:36 صبح
فیلدهای نوع چک و وضعیت چک را هم از نوع NvarChar تعریف کردم
فایل دیتابیستون اگه حجمش زیاد نیست برسون براتون درستش کنم

narges_j
چهارشنبه 30 مرداد 1392, 01:36 صبح
این کد دکمه نمایشم هست


DataTable dt = new DataTable();
Class.ClassBusChek Chek = new Class.ClassBusChek();



Chek.Status = comboTypeSearch.SelectedItem.ToString();
Chek.Typech = comboTypeChek.SelectedItem.ToString();
dt = Chek.Gozaresh();
GridChek.DataSource = dt;
GridChek.Columns[0].Visible = false;

GridChek.Columns[1].HeaderText = "شماره فاکتور";
GridChek.Columns[2].HeaderText = "شماره چک";
GridChek.Columns[3].HeaderText = "تاریخ صدور";
GridChek.Columns[5].HeaderText = "نام بانک";
GridChek.Columns[4].HeaderText = "تاریخ سر رسید";
GridChek.Columns[6].HeaderText = "مبلغ";
GridChek.Columns[7].HeaderText = "نام متعهد";
GridChek.Columns[8].HeaderText = "در وجه";
GridChek.Columns[9].HeaderText = "چک";
GridChek.Columns[10].HeaderText = "وضعیت";
GridChek.Columns[11].HeaderText = "نوع چک";


این هم کد اس کیو ال

Dal.cmd.Parameters.Add(new SqlParameter("@StatusCh",SqlDbType.NVarChar )).Value=this.Status;
Dal.cmd.Parameters.Add(new SqlParameter("@TypeChek",SqlDbType.NVarChar)).Value= this.Typech;
string sql = "select IDCh,IDFactor,ShomareCh,YearSodorCh+'/'+MonthSodorCh+'/'+DaySodorCh as DateSodor,YearResidCh+'/'+MonthResidCh+'/'+DayResidCh as DateResid,NameBankCh,MablaghCh,NameMotahedCh,Vajhe Ch,TypeCh,StatusCh,Typeh from Chek where StatusCh=@StatusCh and TypeCh=@TypeChek ";

Dal.connect();
DataTable dt = Dal.show(sql);
Dal.disconnect();
return dt;

حتی یه سلکت ساده را هم با شرط نشان نمیده
مثل این

select * from Chek where TypeCh=@TypeCh

narges_j
چهارشنبه 30 مرداد 1392, 01:50 صبح
http://uploadtak.com/images/d926_DATA.rar

khokhan
چهارشنبه 30 مرداد 1392, 01:55 صبح
این کد دکمه نمایشم هست


DataTable dt = new DataTable();
Class.ClassBusChek Chek = new Class.ClassBusChek();



Chek.Status = comboTypeSearch.SelectedItem.ToString();
Chek.Typech = comboTypeChek.SelectedItem.ToString();
dt = Chek.Gozaresh();
GridChek.DataSource = dt;
GridChek.Columns[0].Visible = false;

GridChek.Columns[1].HeaderText = "شماره فاکتور";
GridChek.Columns[2].HeaderText = "شماره چک";
GridChek.Columns[3].HeaderText = "تاریخ صدور";
GridChek.Columns[5].HeaderText = "نام بانک";
GridChek.Columns[4].HeaderText = "تاریخ سر رسید";
GridChek.Columns[6].HeaderText = "مبلغ";
GridChek.Columns[7].HeaderText = "نام متعهد";
GridChek.Columns[8].HeaderText = "در وجه";
GridChek.Columns[9].HeaderText = "چک";
GridChek.Columns[10].HeaderText = "وضعیت";
GridChek.Columns[11].HeaderText = "نوع چک";


این هم کد اس کیو ال

Dal.cmd.Parameters.Add(new SqlParameter("@StatusCh",SqlDbType.NVarChar )).Value=this.Status;
Dal.cmd.Parameters.Add(new SqlParameter("@TypeChek",SqlDbType.NVarChar)).Value= this.Typech;
string sql = "select IDCh,IDFactor,ShomareCh,YearSodorCh+'/'+MonthSodorCh+'/'+DaySodorCh as DateSodor,YearResidCh+'/'+MonthResidCh+'/'+DayResidCh as DateResid,NameBankCh,MablaghCh,NameMotahedCh,Vajhe Ch,TypeCh,StatusCh,Typeh from Chek where StatusCh=@StatusCh and TypeCh=@TypeChek ";

Dal.connect();
DataTable dt = Dal.show(sql);
Dal.disconnect();
return dt;

حتی یه سلکت ساده را هم با شرط نشان نمیده
مثل این

select * from Chek where TypeCh=@TypeCh
اینطور که پیداست بایستی پروژه تون سه لایه باشه

narges_j
چهارشنبه 30 مرداد 1392, 01:56 صبح
بله سه لایه است.اگر نیاز هست بفرستمش

khokhan
چهارشنبه 30 مرداد 1392, 08:24 صبح
بله سه لایه است.اگر نیاز هست بفرستمش
مشکل کار شما مثل بسیاری از دوستان که خیلی هم توی این تالار مطرح شده و بحث گردیده از اونجا ناشی می شه که حروف "ی" و "ک" توی جدولتون به صورت عربی درج گردیده یعنی پایین حرف "ی " دوتا نکته گذاشته می شه و توی جستجو مشکل ایجاد می کنه حالا من یه خورده تغییرات توی برنامه تون ایجاد کردم و تا یه حدی مشکل فراخوانی حل گردید اما بایستی قبل از هر کاری مشکل دیتابیس تون رو حل کنین تا اطلاعات به صورت یکدست ذخیره بشه و در هنگام جستجو مشکل درست نکنه
109417
البته بد نیست به این لینکها هم یه نگاهی بکنین 1 (http://barnamenevis.org/showthread.php?320175-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%AD%D8%B1%D9%81-quot-%DB%8C-quot-%D8%AF%D8%B1-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%28-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%A7%DA%A9%D8%B3%D8%B3-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-%D8%B8%D8%B1%D9%81-DataGrid-%29&highlight=%D9%85%D8%B4%DA%A9%D9%84+%D8%AD%D8%B1%D9 %81) و 2 (http://barnamenevis.org/showthread.php?320589-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B5%D9%84%D8%A7%D8%AD-%DA%A9%D9%84%D9%85%D8%A7%D8%AA-%D8%B9%D8%B1%D8%A8%DB%8C-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3) و 3 (http://barnamenevis.org/showthread.php?153196-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%A8%D8%A7-%D8%AD%D8%B1%D9%81-%28%DB%8C%29&highlight=%D9%85%D8%B4%DA%A9%D9%84+%D8%AD%D8%B1%D9 %81)

narges_j
چهارشنبه 30 مرداد 1392, 10:18 صبح
خیلی ممنون از اینکه وقت گذاشتید.من خودم اصلا متوجه نشده بودم که زیر ی دو نقطه هست