نقل قول: جست و جوی پیشرفته
نقل قول: جست و جوی پیشرفته
تویه Text_change اینطوری بنویس.
SqlConnection objconn = new SqlConnection();
objconn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Dbname.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlCommand objcomm = new SqlCommand("select Name from Table_1", objconn);
objconn.Open();
SqlDataReader myReader = objcomm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(myReader);
DataView dv = new DataView(dt);
dataGridView3.DataSource = dv;
dv.RowFilter = "Name LIKE'%" + textBox1.Text + "%'";
if (textBox1.Text == "")
{
dataGridView3.DataSource = "";
}
نقل قول: جست و جوی پیشرفته
سلام دوست عزیز
شما از این دستور اس کیو ال استفاده کنید.
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
به جای پترن می تونید بر حسب نیاز از این موارد استفاده کنید :
اگه می خواهید جستجو بر حسب حرف اول باشه : %م
اگر می خواهید جستجو بر حسب حرف آخر باشد : م%
اگر می خواهید حرف دوم یا سوم و .. جستجو شود : %م_
توضیحات کامل مقاله رو می تونید در لینک زیر به زبان اصلی ببینید.
http://www.w3schools.com/sql/sql_like.asp
موفق باشید
نقل قول: جست و جوی پیشرفته
سلام.
دوست عزیز شما رو یک راهنکایی کلی میکنم.
تمامی جستجو ها با دستور Like انجام میشه هر جور که فکر کنید میتونید با این دستور جستجو کنید این دستور را خوب یاد بگیرید.
به طور مثال:
select name from table1 where name like '--a' dar in dastor
این دستور تمام اسم هایی که حرف سومشون ش است را بر میگرداند.
مثل: abas , ......
نقل قول: جست و جوی پیشرفته
دوست من اینجا خوب باید حرف رو خودمون توی دستور بنویسیم
من نمی خوام اینجوری باشه
می خوام حرفی که توی تکست باکس می نویسه رو برام سرچ بزنه
نقل قول:
نوشته شده توسط
hessam2003
سلام.
دوست عزیز شما رو یک راهنکایی کلی میکنم.
تمامی جستجو ها با دستور Like انجام میشه هر جور که فکر کنید میتونید با این دستور جستجو کنید این دستور را خوب یاد بگیرید.
به طور مثال:
select name from table1 where name like '--a' dar in dastor
این دستور تمام اسم هایی که حرف سومشون ش است را بر میگرداند.
مثل: abas , ......
نقل قول: جست و جوی پیشرفته
اگه منظورت تحت وبه من با php و ajax توضیح میدم:
اول یه تکست باکس ایجاد می کنیم برای وارد کردن عبارت جستجو و یه لایه زیرش برای نمایش ریزالت ها و یه فایل php کنارش برای جستجو و یه بانک اصلاعاتی
مثلا اگه اسم فایل php باشه search.php تو فایل html یه همچین کدی رو وارد کن:
کد HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="javascript" type="text/javascript">
function dosearch(){
name = document.search_frm.name.value;
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState!=4){
document.getElementById('result').innerHTML="";
}
else if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById('result').innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",'search.php?name='+name,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form name="search_frm">
<input name="name" onkeyup="dosearch()" />
<div id="result"></div>
</form>
</body>
</html>
بعد تو فایل php یه همچین کدی رو باید وارد کنی:
$connection=mysql_connect('127.0.0.1','root','')or die(mysql_error());
@mysql_select_db('test',$connection)or die(mysql_error());
$name = trim($_GET['name']);
$query = "SELECT * FROM `owners` WHERE(`name` LIKE '%$name%')";
if($name != "" ){
if(mysql_num_rows(mysql_query($query)) < 1){
echo 'رکوردی یافت نشد';
}
else{
$num = mysql_num_rows(mysql_query($query));
for ( $a=1 ; $a <= $num ; $a++ ){
$b = $a - 1;
$name = mysql_fetch_array(mysql_query($query." LIMIT $b ,$num" , $connection) );
echo $name['name']."<br />";
}
}
}
نقل قول: جست و جوی پیشرفته
دوست من اینجا خوب باید حرف رو خودمون توی دستور بنویسیم
من نمی خوام اینجوری باشه
می خوام حرفی که توی تکست باکس می نویسه رو برام سرچ بزنه
نقل قول:
نوشته شده توسط
hessam2003
سلام.
دوست عزیز شما رو یک راهنکایی کلی میکنم.
تمامی جستجو ها با دستور Like انجام میشه هر جور که فکر کنید میتونید با این دستور جستجو کنید این دستور را خوب یاد بگیرید.
به طور مثال:
select name from table1 where name like '--a' dar in dastor
این دستور تمام اسم هایی که حرف سومشون ش است را بر میگرداند.
مثل: abas , ......
نقل قول: جست و جوی پیشرفته
تایپیکی که دادم رو نگاه می کردی
System.Data.SqlClient.SqlCommand SqlCommand = new System.Data.SqlClient.SqlCommand();
SqlCommand.Connection = SqlConnection;
SqlCommand.CommandType = CommandType.Text;
SqlCommand.CommandText = "SELECT id , name , fname , namepedar FROM ViewName WHERE id<>0 ";
if (this.textBox_name.Text.Trim().Length != 0)
SqlCommand.CommandText += "AND name LIKE(N'" + this.textBox_name.Text.Trim() + "%') ";
if(this.textBox_fname.Text != string.Empty)
{
SqlCommand.CommandText += " AND fname LIKE(N'" + this.textBox_fname.Text.Trim() + "%') ";
}
if (this.textBox_namepedar.Text != string.Empty)
{
SqlCommand.CommandText += " AND namepedar LIKE(N'" + this.textBox_namepedar.Text.Trim() + "%') ";
}
SqlCommand.CommandText += "ORDER BY fname";
DataTable dataTable = new DataTable();
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
sqlDataAdapter.SelectCommand = SqlCommand;
sqlDataAdapter.Fill(dataTable);
this.dataGridView1.DataSource = dataTable;
دوستمون هم جناب keyvan_s89 کدشون درسته
بقیه هم درسته فقط باید تکست باکس رو به دستور sql اضافه کنی
نقل قول: جست و جوی پیشرفته
دمت گرم داداش
نقل قول:
نوشته شده توسط
keyvan_s89
تویه Text_change اینطوری بنویس.
SqlConnection objconn = new SqlConnection();
objconn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Dbname.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlCommand objcomm = new SqlCommand("select Name from Table_1", objconn);
objconn.Open();
SqlDataReader myReader = objcomm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(myReader);
DataView dv = new DataView(dt);
dataGridView3.DataSource = dv;
dv.RowFilter = "Name LIKE'%" + textBox1.Text + "%'";
if (textBox1.Text == "")
{
dataGridView3.DataSource = "";
}
نقل قول: جست و جوی پیشرفته
سلام جواب کیوان درسته دیگه
اینم یه روش دیگه
private void txtfamily_TextChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("کانکشن استرینگ");
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM tbl1 where name like '%" + txtname.Text + "%'",con);
da.SelectCommand = cmd;
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
dataGridView1.DataSource = ds.Tables[0];
else dataGridView1.DataSource = null;
}
نقل قول: جست و جوی پیشرفته
آره روش کیوان درسته فقط یه اشکال کوچولو داره . وقتی یه حرف رو وارد می کنی برای حرف بعدی ارور باز بودن کانکشن رو میده باید آخر دستورات connection.close() رو بزنیم
نقل قول: جست و جوی پیشرفته
نقل قول:
نوشته شده توسط
masoodz
آره روش کیوان درسته فقط یه اشکال کوچولو داره . وقتی یه حرف رو وارد می کنی برای حرف بعدی ارور باز بودن کانکشن رو میده باید آخر دستورات connection.close() رو بزنیم
بله درسته اصلا به نظر من اگر لایه ای بنویسید که خیلی بهتره (روش دیگه اینه که همین کارایی که شما انجام دادین رو به شکل دیگه انجام بدین؛ به این صورت که توی فرم لود ارتباط رو برقرار کنید و موقع بستن فرم کانکشن رو ببنید " این بهینه تره "
کانکشن رو Dispose هم میشه کرد