PDA

View Full Version : ساخت یک صفحه جست جو



sadegh24
سه شنبه 27 بهمن 1394, 05:28 صبح
من یه صفحه سرچ دارم بر اساس چند تا پارامتر اگه ممکنه کمک کنید کجاش ایراد داره

using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationMa nager.
ConnectionStrings["ZagmaDBConnectionString2"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
string sql = "select CName نام, mobile موبایل,state وضعیت,CEmail ایمیل from TBLCustomers WHERE (CName LIKE '%' + @CName + '%') AND (mobile LIKE @mobile + '%') AND (State LIKE @State + '%') AND(CID BETWEEN @C1 AND @C2) ";

conn.Open();
cmd.CommandText = sql;
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@CName", txtName.Text);
cmd.Parameters.AddWithValue("@mobile", txtmobile.Text);
cmd.Parameters.AddWithValue("@State ", chstate.SelectedValue);
cmd.Parameters.AddWithValue("@C1 ", i1);
cmd.Parameters.AddWithValue("@C2 ", i2);
using (SqlDataReader sdr = cmd.ExecuteReader())
{


while (sdr.Read())
{
DataTable dt = new DataTable();
dt.Load(sdr);
repaeter.DataSource = dt;
repaeter.DataBind();
repaeter.Visible = true;
}
}





<asp:Repeater ID="cdcatalog" runat="server">


<HeaderTemplate>
<table style="width: 100%" dir="rtl">
<tr style="width: 100%; background-color: lightgrey;">
<%--<td style="width: 3%; height: 30px; vertical-align: central" align="center">
<asp:CheckBox ID="CheckBox2" runat="server" />
</td>--%>
<td style="width: 15%;" align="center">
<label>نام مشتری </label>
</td>
<td style="width: 20%; vertical-align: middle;" align="center">
<label>موبایل</label>
</td>
<td style="width: 10%;" align="center">
<label>ایمیل </label>
</td>
<td style="width: 10%;" align="center">
<label>وضعیت </label>
</td>




</tr>
</table>


</HeaderTemplate>
<ItemTemplate>


<table style="width: 100%" dir="rtl">
<tr style="width: 100%">
<%--<td style="width: 3%; height: 100px; vertical-align: central" align="center">
<asp:CheckBox ID="CheckBox1" runat="server" />
</td>--%>
<td style="width: 15%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "CName") %>
</td>
<td style="width: 20%; vertical-align: middle;" align="center">
<%# DataBinder.Eval(Container.DataItem, "mobile") %>
</td>
<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "cemail") %>
</td>


<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "state") %>
</td>






</tr>
</table>


</ItemTemplate>
<AlternatingItemTemplate>
<table style="width: 100%" dir="rtl">
<tr style="width: 100%; background-color: powderblue">
<%--<td style="width: 3%; height: 100px; vertical-align: central" align="center">
<asp:CheckBox ID="CheckBox1" runat="server" />
</td>--%>
<td style="width: 15%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "cName") %>
</td>
<td style="width: 20%; vertical-align: middle;" align="center">
<%# DataBinder.Eval(Container.DataItem, "mobile") %>
</td>
<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "cemail") %>
</td>


<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "state") %>
</td>






</tr>
</table>


</AlternatingItemTemplate>


</asp:Repeater>

komeil64
چهارشنبه 28 بهمن 1394, 06:35 صبح
چ اروری میده؟

sadegh24
چهارشنبه 28 بهمن 1394, 07:13 صبح
کلا عوضش کردم کدش اینه

SqlDataSource1.SelectCommand = "select CName , mobile ,state ,CEmail from TBLCustomers WHERE (CName LIKE '%' + @CName + '%') AND (mobile LIKE '%'+@mobile + '%') AND (State LIKE @State + '%') AND(CID BETWEEN @C1 AND @C2)";
string name = "";
string mobile = "";
SqlDataSource1.SelectParameters["CName"].DefaultValue =""+ txtName.Text + "";
SqlDataSource1.SelectParameters["mobile"].DefaultValue = "" + txtmobile.Text + "";
SqlDataSource1.SelectParameters["State"].DefaultValue = chstate.SelectedValue;
SqlDataSource1.SelectParameters["C1"].DefaultValue = c1.Text;
SqlDataSource1.SelectParameters["C2"].DefaultValue = c2.Text;

اینم repeater

<asp:Repeater ID="cdcatalog" runat="server" DataSourceID="SqlDataSource1">


<headertemplate>
<table style="margin-right:0px; width: 100%" dir="rtl">
<tr style="width: 100%; background-color: lightgrey;">
<%--<td style="width: 3%; height: 30px; vertical-align: central" align="center">
<asp:CheckBox ID="CheckBox2" runat="server" />
</td>--%>
<td style="width: 15%;" align="center">
<label>نام گروه </label>
</td>
<td style="width: 20%; vertical-align: middle;" align="center">
<label>مبایل</label>
</td>
<td style="width: 10%;" align="center">
<label> ایمیل </label>
</td>
<td style="width: 10%;" align="center">
<label>وضعیت </label>
</td>


</tr>
</table>


</headertemplate>
<itemtemplate>


<table style="margin-right:0px; width: 100%" dir="rtl">
<tr style="width: 100%">
<%--<td style="width: 3%; height: 100px; vertical-align: central" align="center">
<asp:CheckBox ID="CheckBox1" runat="server" />
</td>--%>
<td style="width: 15%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "CName") %>
</td>
<td style="width: 20%; vertical-align: middle;" align="center">
<%# DataBinder.Eval(Container.DataItem, "mobile") %>
</td>
<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "cemail") %>
</td>


<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "state") %>
</td>




</tr>
</table>


</itemtemplate>
<alternatingitemtemplate>
<table style="margin-right:0px; width: 100%" dir="rtl">
<tr style="width: 100%; background-color: powderblue">
<%--<td style="width: 3%; height: 100px; vertical-align: central" align="center">
<asp:CheckBox ID="CheckBox1" runat="server" />
</td>--%>
<td style="width: 15%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "cName") %>
</td>
<td style="width: 20%; vertical-align: middle;" align="center">
<%# DataBinder.Eval(Container.DataItem, "mobile") %>
</td>
<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "cemail") %>
</td>


<td style="width: 10%;" align="center">
<%# DataBinder.Eval(Container.DataItem, "state") %>
</td>




</tr>
</table>


</alternatingitemtemplate>


</asp:Repeater>

ولی مشکلی که داره اینه که واسه یه رکورد اگه یکی از پارامتر هاش مثلا موبایل تو دیتا بیس مقداری ندشته باشه کلا اون رکوردو نمیارتش و اصلا پیداش نمیکنه

sadegh24
چهارشنبه 28 بهمن 1394, 08:13 صبح
چ اروری میده؟
تو این کد این ارور رو میده:
DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'CName'.
در حالی که من CName دارم

sadegh24
چهارشنبه 28 بهمن 1394, 11:36 صبح
درست شد مرسی:لبخندساده: