• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

کمک در مورد این کد جستجو

peyman13618

Registered User
تاریخ عضویت
28 آپریل 2005
نوشته‌ها
161
لایک‌ها
0
این یه صفحه جستجو توی یه دیتابیس با یه جدول هست که سه تا ستون subj, auth, vol داره.
می خوام چیزی که تو textboxنوشته میشه مثلا توی subj جستجو بشه و بعد نتیجه رو نمایش بده. این کد ها رو نوشتم ولی الان موقع جستجو از gridview1.databinde ایراد میگیره و سبز میشه و مینویسه

Both DataSource and DataSourceID are defined on 'GridView1'. Remove one definition.​

اشکالش رو هرچی تلاش کردم نفهمیدم. اگه میشه یه نفر کمک کنه اینو سریع درستش کنم خیلی لازمش دارم. اگه نمیشه هم یه صفحه که کار بکنه واسه جستجو برام بفرستید خیلی خیلی ممنون میشم.
این هم کدی که من نوشتم.
<%@ Page Language="VB" AutoEventWireup="false" %>

<!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 runat="server">
<title>جستجوي عنوان مقالات </title>
<script language="vbscript" runat="server" >


Sub Show_result(ByVal sender As Object, ByVal e As System.EventArgs)
Dim con As New Data.OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("app_data/library.mdb")
con.Open()
Dim cmd As New Data.OleDb.OleDbCommand
cmd.CommandText = "select * from tbl1 where subj=@s"
cmd.CommandType = Data.CommandType.Text
cmd.Connection = con
Dim P1 As New Data.OleDb.OleDbParameter
P1.ParameterName = "@s"
P1.Value = TextBox1.Text
cmd.Parameters.Add(P1)
GridView1.DataSource = cmd.ExecuteReader
GridView1.DataBind()
con.Close()
End Sub

</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<center>
<h4 dir="rtl" >شما می توانید جستجوی خود را بر اساس عنوان مقاله و یا نام نویسنده در بانک اطلاعاتی مقالات مجله انجام دهید</h4>
<asp:TextBox ID="TextBox1" runat="server" Width="200"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" OnClick="Show_result" Text="جستـجو" />
&nbsp;
<asp:DropDownList runat="server" ID="drop" AutoPostBack="True" DataTextField="subject" DataValueField="subject">
<asp:ListItem Value="1">عنوان</asp:ListItem>
<asp:ListItem Value="2">مولف</asp:ListItem>

</asp:DropDownList>&nbsp;&nbsp;<br /><br />

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="subj" HeaderText="subj" SortExpression="subj" />
<asp:BoundField DataField="auth" HeaderText="auth" SortExpression="auth" />
<asp:BoundField DataField="vol" HeaderText="vol" SortExpression="vol" />
</Columns>
</asp:GridView>

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/library.mdb" SelectCommand="SELECT * FROM [tbl1] WHERE ([auth] = ?)">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="auth" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:AccessDataSource>

</center>
</div>
</form>
</body>
</html>​
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
خوب شما یه بار به gridview ، دیتاسورس دادی و تو sub که تعریف کردی یکی دیگه داری میدی !

تو gridview این رو حذف کن
DataSourceID="AccessDataSource1
و تو page load از روی postback بهش دیتاسورس دیفالت رو بده
 

peyman13618

Registered User
تاریخ عضویت
28 آپریل 2005
نوشته‌ها
161
لایک‌ها
0
خوب شما یه بار به gridview ، دیتاسورس دادی و تو sub که تعریف کردی یکی دیگه داری میدی !

تو gridview این رو حذف کن
DataSourceID="AccessDataSource1
و تو page load از روی postback بهش دیتاسورس دیفالت رو بده

ممنون از راهنمایی شما.این قسمت رو متوجه نشدم راستش.میشه یه بار دیگه بفرمایید چه کار باید انجام بدم؟

تو page load از روی postback بهش دیتاسورس دیفالت رو بده

زیاد حالیم نیست از برنامه نویسی .الان هم که گیر کردم شدید .نمیدونم چی به چیه؟!:wacko: اگه لطف کنید ممنون میشم:blush:
 
بالا