Мне удалось получить данные из базы данных, когда была загружена страница, показывающая все данные в базе данных до сих пор.но когда я собирался использовать текстовое поле и кнопку поиска, я получил сообщение об ошибке «ОШИБКА: ДОЛЖНА ОБЪЯВИТЬ ПЕРЕМЕННУЮ СКАЛЯРНУЮ @MRF_NO».Есть ли проблемы с моим кодом?Я выложу коды.
C #
private void searchsumm()
{
database db = new database();
string database = db.MRF();
using (SqlConnection con = new SqlConnection(database))
{
con.Open();
string query = "Select MRF_No, BU, Dept,ReqByDept_Mngr FROM MRF_Details";
using (SqlCommand com = new SqlCommand(query, con))
if (!string.IsNullOrEmpty(txtSearch.Text.Trim()))
{
query += " WHERE ContactName LIKE @MRF_No + '%'";
com.Parameters.AddWithValue("@MRF_No", txtSearch.Text.Trim());
}
using (SqlDataAdapter sda = new SqlDataAdapter(query, con))
{
DataTable dt = new DataTable();
sda.Fill(dt); //Error: Must declare the scalar variable "@MRF_No".
smry.DataSource = dt;
smry.DataBind();
}
con.Close();
}
}
ASP.NET
<div class="col-sm-4">
<asp:TextBox ID="txtSearch" runat="server" ReadOnly="false" CssClass="form-control"></asp:TextBox>
</div>
<div class="col-sm-5">
<asp:Button ID="searchdb" runat="server" CssClass="btn" Text="Search" onclick="btnsummary"/>
</div>
<div class="row-space"></div>
<asp:GridView runat="server" ID="smry" CssClass="list-group" AutoGenerateColumns="False" AllowPaging="true" >
<Columns>
<asp:BoundField DataField="MRF_No" HeaderText="MRF No" SortExpression="MRF_No" />
<asp:BoundField DataField="BU" HeaderText="Business Unit" SortExpression="BU" />
<asp:BoundField DataField="Dept" HeaderText="Department" SortExpression="Dept" />
<asp:BoundField DataField="ReqByDept_Mngr" HeaderText="Request By" SortExpression="ReqByDept_Mngr" />
</Columns>
</asp:GridView>