PDA

View Full Version : مشکل در جستجو بر اساس نام



eletcomp
شنبه 05 بهمن 1392, 20:48 عصر
با سلام
من یک کد جستجو بر اساس شماره ای دی دارم و میخوام ان را به کد جستجو بر اساس نام تغییر بدهم:یک چیز هایی درست کردم ولی نمی دانم درست هست یا نه؟؟ لطفا راهنمایی کنید!

جستجو بر اساس ای دی


DataSet ds = new DataSet();
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand();
adp.SelectCommand.Connection = con;
adp.SelectCommand.CommandText = "select * from student where studid like @N";
adp.SelectCommand.Parameters.AddWithValue("@N", txtsearch.Text + "%");
adp.Fill(ds, "t1");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "t1";




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


DataSet ds = new DataSet();
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand();
adp.SelectCommand.Connection = con;
adp.SelectCommand.CommandText = "select * from student where lname like @Na";
adp.SelectCommand.Parameters.AddWithValue("@Na", txtsearch.Text + "%");
adp.Fill(ds, "t1");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "t1";




این هم فایل پروژه

http://www.uplooder.net/cgi-bin/dl.c...ac88b3dc4ca183
سپاس

sajadsobh
شنبه 05 بهمن 1392, 21:14 عصر
دستور جستجو رو به این شکل بنویس ببین جواب میده؟!


"select * from student where lname like '" + txtsearch.Text + "'"

البته دیگه نیاز به نوشتن خط بعدیش نیست :چشمک:

hashtgerd2
شنبه 05 بهمن 1392, 21:17 عصر
تو پست قبلی درستش کردم
ایراد چیز دیگه ای بودش

eletcomp
شنبه 05 بهمن 1392, 21:18 عصر
نه جواب نداد!! فقط عدد میاره!! ایا کد جستجو به سبک دیگه هم داریم؟؟

hashtgerd2
شنبه 05 بهمن 1392, 21:26 عصر
کاما هم باید بزاری
این الان کار میکنه
public void searchname()
{

DataSet ds = new DataSet();
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand();
adp.SelectCommand.Connection = con;
adp.SelectCommand.CommandText = "select * from student where (lname LIKE '%"+txtsearch.Text+"%')";
//adp.SelectCommand.Parameters.AddWithValue("@Na", txtsearch.Text );
adp.Fill(ds, "t1");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "t1";
dataGridView1.Columns[0].HeaderText = "شماره منحصر به فرد";
dataGridView1.Columns[1].HeaderText = "شماره دانشجویی";
dataGridView1.Columns[2].HeaderText = "نام";
dataGridView1.Columns[3].HeaderText = "نام خانوادگی";
dataGridView1.Columns[4].HeaderText = "شهر";
}

hashtgerd2
شنبه 05 بهمن 1392, 21:32 عصر
با تابع اد پارامتر مشکل داره
مشکل اینه که در زمان اجرا مقدار تکس باکس داخلش قرار نمیگیره
چند مورد تست کردم نشد ولی کد بالا بدون اد پارامتر کار میکنه

"select * from student where (lname LIKE '"+"@Na"+"')";
تو این حالت در زمان اجرا کوئری همینه مقدار نمیگیره

eletcomp
شنبه 05 بهمن 1392, 21:35 عصر
ممنون دوست عزیز: ولی باز هم چیزی را نشان نمیده!! مثلا من توی تکس باکس جستجو اسم رضا را می نویسم ولی نتیجه ای نداره!!

hashtgerd2
شنبه 05 بهمن 1392, 21:41 عصر
الان اپ میکنم
مشکلی نداره
فقط پایگاه داده رو داده ها شو پاک کردم دوباره خودت یه چیزی بنوی
خودم دو ردیف همینجوری نوشتم
http://www.uplooder.net/cgi-bin/dl.cgi?key=308f2a880a6f31be1c6443fb02c741a8

eletcomp
شنبه 05 بهمن 1392, 21:49 عصر
ممنون دوست عزیز: لطف کن توی یک اپلود سنتر دیگه فایل اپلود کن خیلی سرعت دانلود اش داغون هست!!:عصبانی++:

eletcomp
شنبه 05 بهمن 1392, 23:42 عصر
دوستان این مشکل جستجو بر اساس نام: هنوز حل نشده!! فایل بالایی هم کار نمیکنه!!

khokhan
یک شنبه 06 بهمن 1392, 00:14 صبح
دوستان این مشکل جستجو بر اساس نام: هنوز حل نشده!! فایل بالایی هم کار نمیکنه!!
............................................

eletcomp
یک شنبه 06 بهمن 1392, 00:30 صبح
ممنون دوست عزیز: چند سئوال چرا توی فرم اصلی :تکس باکس با نام txtid یا همان شماره منحصر به فرد ظاهر نیست ولی هنگام اجرا برنامه ظاهر میشه؟؟؟

khokhan
یک شنبه 06 بهمن 1392, 00:41 صبح
ممنون دوست عزیز: چند سئوال چرا توی فرم اصلی :تکس باکس با نام txtid یا همان شماره منحصر به فرد ظاهر نیست ولی هنگام اجرا برنامه ظاهر میشه؟؟؟
یه بار پروژه رو rebuild solution بکنین درست می شه

eletcomp
یک شنبه 06 بهمن 1392, 00:50 صبح
کردم ولی ارور میده!!!
http://upload7.ir/imgs/2014-01/04843840382999449101.png

samin_panahi
یک شنبه 06 بهمن 1392, 01:27 صبح
فکر کنم این دیگه مشکلی نداره

eletcomp
یک شنبه 06 بهمن 1392, 11:16 صبح
ممنون دوست عزیز ولی باز هم درست نشد!! کلا بی خیال:فوقش از اول درستش کنم!! ولی چند سئوال:
1. لطفا این کدها را توضیح بدهید!!میخواستم بدونم مشکل برنامه چی بود!!


private void txtid_TextChanged(object sender, EventArgs e)
{

SqlConnection con = new SqlConnection(connect);
SqlDataAdapter da = new SqlDataAdapter("select * from student where studid LIKE '" + txtid.Text + "%'", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;



}


چرا اول qury=null شده هست و بعدش چرا از دستور try وcatch استفاده شده هست؟؟
منظور از objDataTable چیست؟؟؟
در اخر هم اگر یک کتاب در مورد این سبک کدها میشناسید لطفا معرفی کنید!!؟ نمیدانم بهش ado.net می گید یا دستورات sql command



void serach()
{
string query = null;
try
{
switch (comboBox1.Text)
{
case "جستجو بر اساس نام":
{
label6.Text = "جستجو بر اساس نام دانشجو";
query = "select * from student WHERE fname LIKE '" + txtsearch.Text + "%'"; break;
}
case "جستجو براساس شماره خاص":
{
label6.Text = "جستجو بر اساس شماره خاص";
query = "select * from student where studid LIKE '" + txtsearch.Text + "%'"; break;
}

default: { break; }
}

SqlConnection con = new SqlConnection(connect);
con.Open();
SqlCommand command = new SqlCommand();
command.CommandText = query;
command.Connection = con;
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
DataTable objDataTable = new DataTable();
adapter.Fill(objDataTable);
con.Close();
dataGridView1.DataSource = objDataTable;
}
catch { }
}