Member 12605293 Ответов: 3

Поиск имени в текстовом поле не работает "неправильный синтаксис"


Привет я пытаюсь найти имя с помощью текстового поля и это не поиск

Что я уже пробовал:

protected void txt_SearchName_TextChanged1(object sender, EventArgs e)
       {
           cn.Open();
           SqlCommand cmd = new SqlCommand("select * from gvdetails17 where EmpName LIKE % '" + txt_SearchName.Text + "'%", cn);
           DataTable dt = new DataTable();
           SqlDataAdapter da = new SqlDataAdapter(cmd);
           da.Fill(dt);
           gvDetails.DataSource = dt;
           cn.Close();
       }

<pre> <asp:TextBox ID ="txt_SearchName" runat="server" style="margin-bottom: -71px;
 margin-left:308px" Width="120px" Font-Size="12px" OnTextChanged= "txt_SearchName_TextChanged1" AutoPostBack="false"></asp:TextBox>

3 Ответов

Рейтинг:
24

Karthik_Mahalingam

пробовать

protected void txt_SearchName_TextChanged1(object sender, EventArgs e)
     {
             string name = txt_SearchName.Text.Trim();
             if(name != "") {
             SqlCommand cmd = new SqlCommand("select * from gvdetails17 where EmpName Like '%'+ @name + '%' ", cn);
             cmd.Parameters.Add("@name", name);
             DataTable dt = new DataTable();
             SqlDataAdapter da = new SqlDataAdapter(cmd);
             da.Fill(dt);
             gvDetails.DataSource = dt;
             gvDetails.DataBind();

         }
     }


Member 12605293

Могу ли я обернуть это в свой метод BindData()

Karthik_Mahalingam

да, с некоторой поправкой..

Member 12605293

частный недействительными BindGrid()
{
DataTable dt = новый DataTable();

string query = " select * from gvdetails17 WHERE 1=1 And EmpName Like '%'+ @name +'%' ";
Команда sqlcommand команду cmd = новый sqlcommand, который();
УМК.Соединение = cn;


if (ddlAddSalary1.SelectedValue != "" & & amp; ddlAddSalary1.SelectedValue ! = " --Select--")
{

string[] sal = ddlAddSalary1.Выбранное значение.Расщеплять('-');
строка from = sal[0];
string to = sal[1];


запрос + = " и Sal между @fromsal и @tosal ";
УМК.Параметры.AddWithValue ("@fromsal", from);
УМК.Параметры.AddWithValue ("@tosal", to);

}
если (ddlAge.SelectedValue != "" & & amp; ddlAge.SelectedValue ! = " --Select--")
{

string[] age = ddlAge.Выбранное значение.Расщеплять('-');
строка from1 = Возраст[0];
строка to1 = возраст[1];

запрос + = " и возраст между @fromage и @toage ";
УМК.Параметры.AddWithValue ("@fromage", from1);
УМК.Параметры.AddWithValue ("@toage", to1);

}


if (ddlDepartment.SelectedValue != "" && ddlDepartment.SelectedValue ! = " --Select--")
{
запрос + = " и Dep = @Dep ";
УМК.Параметры.AddWithValue ("@Dep", ddlDepartment.SelectedValue);
}

имя string = txt_SearchName.Текст.Отделка();
если (имя != "")
{
запрос + = " и имя = @имя ";
УМК.CommandText = запрос;
УМК.CommandType = CommandType. Text;
SqlDataAdapter da = новый SqlDataAdapter(cmd);
да.Заполнить(ДТ);
gvDetails.Источник данных = dt;
gvDetails.Привязку();
}}

охраняемых недействительными txt_SearchName_TextChanged1(объект отправителя, EventArgs в электронной)
{

Биндгрид();

Member 12605293

Я прошу меня объявить скалярную переменную и текстовый ящик

Karthik_Mahalingam

Хорошо объявите это

Member 12605293

Он не входит в последние 2, если условия

Karthik_Mahalingam

вам придется изменить его

Member 12605293

как Картик я внес изменения в запрос и сделал текстовое поле очередь textchanged внутри метода

Karthik_Mahalingam

ЧК выше кода

Karthik_Mahalingam


string name = txt_SearchName.Text.Trim();
if (name != "")
{
query += " and EmpName Like '%'+ @name + '%'";
cmd.Parameters.AddWithValue("@name", name);
}

cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
gvDetails.DataSource = dt;
gvDetails.DataBind();

Member 12605293

Привет, Картик, Спасибо, что он хорошо работает :)

Karthik_Mahalingam

крутой

Member 12605293

Счастливого Утра :)

Karthik_Mahalingam

хороший mng

Member 12605293

Привет Картик
Есть ли какой-нибудь учебник для построения графиков Dotnet с использованием C# не в asp?

Karthik_Mahalingam

думаю, вам придется ознакомиться с документацией..
я использую jqplot.

Member 12605293

Можете ли вы предложить мне какие-либо ссылки на документацию ?

Karthik_Mahalingam

http://www.jqplot.com/docs/files/usage-txt.html

Member 12605293

Спасибо.Есть ли какие-нибудь ссылки на документацию по c#

Member 12605293

Нужны демонстрационные проекты Картик

Karthik_Mahalingam

http://www.jqplot.com/examples/

Member 12605293

Спасибо :)

Karthik_Mahalingam

:) добро пожаловать

Member 12605293

Я пытаюсь в коде c#, но не получаю никакого демо-Картика

Karthik_Mahalingam

проверьте youtube, сэр.
я никогда не работал в ASP-картах.

Member 12605293

Да ладно

Karthik_Mahalingam

хмм

Member 12605293

Если вы получите какие-либо ссылки, связанные с кодом c#, поделитесь со мной.Спасибо

Karthik_Mahalingam

- конечно, сэр.

Member 12605293

Привет Картик

Karthik_Mahalingam

привет

Member 12605293

Как использовать jquery в моем сюжете?

Karthik_Mahalingam

вам не нужно использовать его, он уже встроен в jquery.

Member 12605293

Привет У меня есть одно сомнение,

Это мой cs код
Диаграмма.Серии.ConnectionString = ConfigurationManager.ConnectionStrings["sqlconnection"].Параметр connectionString;
Диаграмма.Y-оѕи.Метки.Text = " общее количество студентов в 2014-2017 годах";
Диаграмма.Title = " Отчет О Ходе Работы";
График.Абсцисс.Метки.Текст = " Годы";
Диаграмма.Ширина = 750;
Диаграмма.Высота = 550;
Диаграмма.Тип = Тип Диаграммы.Пироги;
Диаграмма.Отладки = истина;
Диаграмма.DateGrouping = TimeInterval.Годы;
Диаграмма.DrillDownChain = " Годы, Кварталы, Месяцы, Полные";
Диаграмма.Дефолтные серии.DefaultElement.Всплывающая подсказка = " %yvalue";
Диаграмма.Серии.Name = " бонусные баллы";
Диаграмма.Дефолтные серии.DefaultElement.URL = " jqplot (это)";
Диаграмма.Серии.StartDate = новая система.Дата и время(2014, 1, 1, 0, 0, 0);
Диаграмма.Серии.EndDate = новая система.Дата и время(2017, 12, 31, 23, 59, 59);
Диаграмма.Серии.Метода sqlstatement = @"выбрать длительность,общее в докладе, где продолжительность &ГТ;= #параметр StartDate# ";
Диаграмма.DefaultElement.ShowValue = true;
Диаграмма.Помощьюseriescollection.Добавь();

Color[] myPalette = new Color [] { Color.красный цвет.зеленый цвет.оранжевый цвет.Черный };
Диаграмма.Дефолтные серии.Палитра = myPalette;
}

охраняемых недействительными Ddldrill_SelectedIndexChanged(объект отправителя, EventArgs в электронной)
{
если (Ddldrill.SelectedValue = = " Радар")
{
Диаграмма.Тип = Тип Диаграммы.Радар;
}
если (Ddldrill.SelectedValue = = " TreeMap")
{
Диаграмма.Тип = Тип Диаграммы.Древовидная карта;
}
если (Ddldrill.SelectedValue = = " ComboHorizontal")
{
Диаграмма.Тип = Тип Диаграммы.ComboHorizontal;
}
если (Ddldrill.SelectedValue = = " Датчики")
{
Диаграмма.Тип = Тип Диаграммы.Мареографы;
}
}
dotnetCHARTING.Помощьюseriescollection Рассчитать()
{
dotnetCHARTING.Помощьюseriescollection СК = Новый dotnetCHARTING.Помощьюseriescollection();
Random myR = new Random(1);
for (int a = 0; a < 4; a++)
{
dotnetCHARTING.Серия S = новый dotnetCHARTING.Серия();
s.Name = "Серия" + a. ToString();
for (int b = 0; b < 1; b++)
{
Элемент e = новый элемент();
е.Наименование = "элемент" + б.Метод toString();
е.YValue = мыр.Далее(20);
С. элементы.Добавить (e);
}

СК.Добавить(с);
}
SC[1].Элемент.Цвет = Цвет.FromArgb(255, 255, 0);
SC[1].Элементы[1].Name = " Математика";
SC[1].LegendEntry. Value = " 5";
SC[1].Легендентри.Имя = " Между 15-30";
SC[1].Элемент.SmartLabel.Text = " Математика";

SC[2].Элемент.Цвет = Цвет.FromArgb(255, 99, 49);
SC[2].Элементы[2].Имя = " Наука";
SC[2].LegendEntry. Value = " 24";
SC[2].Легендентри.Имя = " Между 30-40";
SC[2].Элемент.SmartLabel.Text = " Математика";

SC[3].Элемент.Цвет = Цвет.FromArgb(0, 156, 255);
SC[3].Элементы[3].Имя = " Компьютер";
SC[3].LegendEntry. Value = " 38";
SC[3].Легендентри.Имя = " Между 40-50";
SC[3].Элемент.SmartLabel.Text = " Математика";
возврат СК;

}

Это мой aspx








$. jqplot ('Диаграмма', [[[1, 2], [3, 5.12], [5, 13.1], [7, 33.6], [9, 85.9], [11, 219.9]]],
{
название: "экспоненциальная линия",
оси: { ось Y: { отображения: $.jqplot.LogAxisRenderer } },
серия: [{ цвет: '#5FAB78' }]
});











&ЛТ;АСП:метка идентификатор="Метка1" атрибут runat="сервер" ширина="100 Пикс" текст="тип диаграммы"и GT;

< ASP:DropDownList id= " Ddld

Karthik_Mahalingam

напишите вопрос, большой, чтобы ответить

Member 12605293

ладно

Member 12605293

Привет Картик
У меня есть проблема с использованием элементов управления Telerik в моем приложении, я уже написал, Пожалуйста, помогите мне ..Все элементы управления не видны в toolbox и не могут использоваться.

Karthik_Mahalingam

сэр я не очень хорошо знаю телерика

Member 12605293

ОК Картик

Karthik_Mahalingam

сообщение на форумах telerik

Member 12605293

ОК Картик

Karthik_Mahalingam

:)

Member 12605293

Привет Картик
Мне нужна помощь

Karthik_Mahalingam

какая помощь сэр
напишите вопрос

Member 12605293

Привет Картик
спасибо

Member 12605293

Привет Картик Хру

Karthik_Mahalingam

я в порядке сэр

Рейтинг:
0

Jochen Arndt

Процентные подстановочные знаки должны находиться внутри кавычек:

SqlCommand("select * from gvdetails17 where EmpName LIKE '% " + txt_SearchName.Text + "%'", cn);


Рейтинг:
0

OriginalGriff

Никогда так не делай! Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы.

Кроме того, цитата находится не в том месте.
Скорее всего, использование параметризованного запроса устранит вашу проблему - и не забывайте об остальном коде: одна пропущенная команда, и любой может удалить вашу базу данных.

using (SqlCommand cmd = new SqlCommand("SELECT * FROM gvdetails17 WHERE EmpName LIKE '%' + @Txt + '%'", cn))
   {
   cmd.Parameters.AddWithValue("@Txt", txt_SearchName.Text);
   ...


Ehsan Sajjad

нужна ли нам еще контатенация при использовании параметризованного запроса?

OriginalGriff

Это не использование конкатенации - это указание SQL использовать значение параметров вместо его конкатенации.
Когда вы это сделаете:
строка s = "SELECT * FROM MyTable WHERE column = '" + myTextBox.Текст + "'";
Вы передаете через текстовое поле значение как часть команды, поэтому, если оно содержит значение SQL, сервер будет возражать против него.
Так что если я наберу

x'; DROP TABLE gvdetails17;--

в текстовом поле SQL видит его как три команды:

Выберите * из таблицы MyTable, где столбец = 'x'
DROP TABLE gvdetails17
--'

Где последний-это SQL-комментарий.
Он делает выбор, удаляет вашу таблицу и игнорирует остальную часть команды.

Никогда, никогда не делай этого!