PDA

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



fariba-2
سه شنبه 22 تیر 1395, 14:45 عصر
توی پروژه من یه بخشی هست که نیاز به سرچ هست.
قبلا کارهای سرچ رو برای جستجوی ساده و شرطی انجام داده بودم ولی استاد پروژه ام میگه درستش اینه که در هر صورت وقتی صفحه سرچ برای کاربر باز میشه کل اطلاعات بیاد و کاربر بتونه حالا مثلا بر اساس اسم سرچ کنه.
سوال من اینه که برای این کار باید کدهای سرچ قبلی رو (شرطی رو) پاک کنم؟
اگر بذارم اون بمونه که امکان سرچ موردی هم باشه آیا باید برای دکمه سرچ ترکیبی جدید یه دیتاگرید ویوو دیگه درست کنم؟ یا اینکار میتونه روی همون اطلاعات قبلی انجام بشه؟
آیا تداخل ایجاد نمیکنه؟
کدها رو که میزنم کلی ارور میده که نمیدونم از چیه. از تداخله یا چیز دیگه چون کدهای خود سرچ مشکلی ندارن.

public DataTable getcustomerlist(object name,object nameofeditor, object nameoftranslator, );
{
try
{
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.tbl_book where((name=@name or @name='"+""+"') and (nameofeditor=@nameofeditor or @nameofeditor='"+""+"')and (nameoftranslator=@nameoftranslator(or)@nameoftran slator='"+""+"'))", con);
cmd.parameters.AddWithValue("@name",name);
cmd.parameters.AddWithValue("@nameofeditor",nameofeditor);
cmd.parameters.AddWithValue("@nameoftranslator",nameoftranslator);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch
{
DataTable dt = new DataTable();
return dt;
}
}

Mahmoud.Afrad
پنج شنبه 24 تیر 1395, 18:17 عصر
متد getcustomerlist رو به چه صورت فراخوانی می کنید؟
اگر خطایی دریافت می کنید متن خطا رو بزارید.

این کدی هم که گذاشتید خطای زمان کامپایل داره. اول خطاها رو برطرف کنید و نتیجه اجرا رو بگید.

fariba-2
پنج شنبه 24 تیر 1395, 19:00 عصر
متد getcustomerlist رو به چه صورت فراخوانی می کنید؟
اگر خطایی دریافت می کنید متن خطا رو بزارید.

این کدی هم که گذاشتید خطای زمان کامپایل داره. اول خطاها رو برطرف کنید و نتیجه اجرا رو بگید.

خوب من چند جور کد جستجو دارم. فکر میکنم بهتره اونها رو جدا جدا بذارم و شما ببینید مشکل از کجاست.

public DataTable searchbook(object code, object name)
{
try
{
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT code, name, nameofeditor, price, tedad, nameoftranslator FROM dbo.tbl_book where ((code=@code or @code='" + "" + "') and (name like '%'+@name+'%' or @name='" + "" + "'))", con);
cmd.Parameters.AddWithValue("@code", code);
cmd.Parameters.AddWithValue("@name", name);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch
{
DataTable dt = new DataTable();
return dt;
}
}

این قسمت اول

public DataTable searchbook2(object name)
{
try
{
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT code, name, nameofeditor, price, tedad, nameoftranslator FROM dbo.tbl_book where name LIKE N'" + name.ToString() + "%'", con);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch
{
DataTable dt = new DataTable();
return dt;
}
}

این قسمت دوم

public DataTable searchcustomer(object fname)
{
try
{
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT code, fname, lname, tell, address FROM dbo.tbl_customer where (fname=@fname or @fname='" + "" + "')", con);
cmd.Parameters.AddWithValue("@fname", fname);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch
{
DataTable dt = new DataTable();
return dt;
}
}

قسمت سوم

public DataTable searchcustomer2(object fname)
{
try
{
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT code, fname, lname, tell, address FROM dbo.tbl_customer where fname LIKE N'" + fname.ToString() + "%'", con);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch
{
DataTable dt = new DataTable();
return dt;
}
}

قسمت چهارم

public DataTable searchorder(object codeofcustomer, object codeofbook)
{
try
{
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT id, customerfullname, bookname, dateoforder, tedad FROM dbo.view_order where ((codeofcustomer=@codeofcustomer or @codeofcustomer='" + "" + "') and (codeofbook=@codeofbook or @codeofbook='" + "" + "'))", con);
cmd.Parameters.AddWithValue("@codeofcustomer", codeofcustomer);
cmd.Parameters.AddWithValue("@codeofbook", codeofbook);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch
{
DataTable dt = new DataTable();
return dt;
}
}

قسمت پنجم

public DataTable getbooklist()
{
try
{
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT code,name FROM dbo.tbl_book order by name", con);
SqlDataAdapter dr = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dr.Fill(dt);
return dt;
}
catch
{
DataTable dt = new DataTable();
return dt;
}
}

همینطور که می بینید این کدها برای جستجوی کتاب و مشتریان و سفارشها هستند.
اما مشکلی که دارند کل دیتابیس رو نشون نمیدن.
من قصد دارم برای هر بخش (یعنی بخش کتابها، بخش مشتریان و بخش سفارشات) سرچی بنویسم که کاربر وقتی روی دکمه جستجو میزنه اطلاعات دیتابیس رو (حالا نه همشون، بلکه اونهایی که مورد نیازه، مثلا کد نیاز کاربر نیست) ببینه و بعد با مثلا زدن روی انتخاب نام کتاب،نام مشتری، سفارش ها اون مورد رو پیدا کنه.