View Full Version : سوال: نحوه ی جستجو از بانک و نمایش اطلاعات در فرم
h05531n
سه شنبه 03 اردیبهشت 1392, 15:50 عصر
بسم الله الرحمن الرحیم
سلام
پروژه ام یک پرتال خبری ، که یه قسمت برای جستجو در خبرها داره.
می خوام با جستجو در بانک و پیدا کردن مقدار مورد ، اطلاعات پیدا شده رو در فرم (و یا DataList) نمایش بده.
این کد رو هم نصفه نیمه نوشتم ، نمی دونم درسته یا نه!!!
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\PortalNews.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT FROM Tbl_News WHERE Description Like'%txtDescription.Text%'";
cmd.Parameters.Add("@Description", SqlDbType.NVarChar, 50).Value = txtDescription.Text;
تشکر
phonixone2
سه شنبه 03 اردیبهشت 1392, 19:46 عصر
دستور select شما اشتباهه
بهتره اینجوری بنویسی
ابتدا کانککشنتو تو webconfig پروژت قرار بده
<appSettings>
<add key="dbpath" value="Server=localhost;Database=test;User ID=sa;Password=1234;" />
</appSettings>
بعد این کدرو تو قسمت پابلیک صفحه مورد نظر بنویس:
SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["dbpath"]);
ودر رویداد کلیک جستجو:
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "select * from Foods_tbl where fd_name like @fd_name or fd_id like @fd_id ";
cmd.Parameters.AddWithValue("@fd_name","%"+txtsearch.Text+"%");
cmd.Parameters.AddWithValue("@fd_id","%"+txtsearch.Text+"%");
cnn.Open();
DataList1.DataSource = cmd.ExecuteReader();
DataList1.DataBind();
cnn.Close();
phonixone2
سه شنبه 03 اردیبهشت 1392, 19:52 عصر
در ضمن در قسمتی که میخوای نتیجه نمایش داده بشه یه datalist قرار بده و تو قسمت Edit template field به ازای فیلدهایی ک میخوای نمایش بدی لیبل اضافه کن ودر قسمت Edit databinding هر لیبل فیلدی رو ک میخوای نمایش بدی اینجوری بنویس:
eval("اسم فیلد در دیتابیس");
h05531n
چهارشنبه 04 اردیبهشت 1392, 12:50 عصر
سلام دوست عزیز ، ممنون که جواب دادید
این قسمت چیکار میکنه؟
ابتدا کانککشنتو تو webconfig پروژت قرار بده
<appSettings>
<add key="dbpath" value="Server=localhost;Database=test;User ID=sa;Password=1234;" />
</appSettings>
وقتی پروژه رو اجرا میکنم ، هنوز متن مورد نظر رو جستجو نکردم ، تمامی خبرها رو در قسمت datalist نمایش میده!!!
و زمانی که روی دکمه جستجو کلیک میکنم پیام خطای زیر نشون داده میشه (تصویر فایل ضمیمه)
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\PortalNews.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from Tbl_News where Description like @Description";
cmd.Parameters.AddWithValue("@Description ", "%" + txtDescription + "%");
con.Open();
DataList1.DataSource = cmd.ExecuteReader();
DataList1.DataBind();
con.Close();
meisam3322
چهارشنبه 04 اردیبهشت 1392, 13:33 عصر
دستور Datalist.DataBind رو حذف کن ، ارور میگه شما دو بار دیتا لیست رو bind کردین ، چون یه بار در Desgin و دیگری در Code
fakhravari
چهارشنبه 04 اردیبهشت 1392, 20:06 عصر
به Datalist دیتاسورت وصل اونو از تو html باید حذف کنی.
h05531n
پنج شنبه 05 اردیبهشت 1392, 16:24 عصر
سلام
تشکر که نظر دادین
دستور Datalist.DataBind رو حذف کن ، ارور میگه شما دو بار دیتا لیست رو bind کردین ، چون یه بار در Desgin و دیگری در Code
این کار رو کردم ، نشد!
به Datalist دیتاسورت وصل اونو از تو html باید حذف کنی.
وقتی پاک می کنم اررو میده و باز نمیشه!(فایل ضمیمه)
این کد فرم:
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
متن:
<asp:Label ID="DescriptionLabel" runat="server" Text='<%# Eval("Description") %>' />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [Description] FROM [Tbl_News]"></asp:SqlDataSource>
کد دکمه جستجو:
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\PortalNews.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from Tbl_News where Description like @Description";
cmd.Parameters.AddWithValue("@Description ", "%" + txtDescription + "%");
con.Open();
DataList1.DataSource = cmd.ExecuteReader();
DataList1.DataBind();
con.Close();
}
h05531n
یک شنبه 08 اردیبهشت 1392, 20:30 عصر
لطفا راهنمایی کنید :متفکر:
h05531n
سه شنبه 10 اردیبهشت 1392, 19:21 عصر
دوباره سلام
مشکل جستجو حل شد ، فقط یه مشکل دیگه پیش اومد!
مشکل اینه که متن فارسی رو جستجو نمی کنه!!!
لطفا راهنمایی کنید.
تشکر
__________________________________________________ ______
کد قسمت دکمه:
protected void Button2_Click(object sender, EventArgs e)
{
string str, q;
str = txtDescription.Text;
q = "select * from Tbl_News where Description like'%"+str+"%'";
SqlConnection conn = new SqlConnection(SqlDataSource1.ConnectionString);
SqlCommand cmd = new SqlCommand(q,conn);
cmd.CommandType = CommandType.Text;
SqlDataReader rdr;
using (conn)
{
conn.Open();
rdr = cmd.ExecuteReader();
GridView1.DataSource = rdr;
GridView1.DataBind();
conn.Close();
}
کد قسمت صفحه:
<asp:GridView ID="GridView1" runat="server" CellPadding="4" EnableModelValidation="True" ForeColor="#333333" GridLines="None"> </asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [Description] FROM [Tbl_News]"></asp:SqlDataSource>
fakhravari
جمعه 13 اردیبهشت 1392, 14:58 عصر
like N'%"+str+"%'"
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.