Member 12802684 Ответов: 1

Эй там... я получаю следующую ошибку в моем дизайне формы.. Пожалуйста, разрешите это


errorSystem.Data.OleDb.OleDbException (0x80040E10): не задано значение для одного или нескольких обязательных параметров. в System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling (OleDbHResult hr) в System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult (tagDBPARAMS dbParams.ОбъектDBPARAMS и выполнить SystemData.ObParams. OleDb.OleDbCommand.ExecuteCommand (поведение CommandBehavior, Object & executeResult) в System.Data.OleDb.OleDbCommand.ExecuteReaderInternal (поведение CommandBehavior, метод String) в System.Data.OleDb.OleDb.OleDb.OleDbCommand_OleDb.OleDbCommand. д) в e: \ SDL \ WebSite \ order.aspx.cs: строка 87

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

использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
использование системы.Сеть;
используя системы.Веб.ИП;
используя системы.Веб.Пользовательского интерфейса.WebControls;
используя системы.Данных.Для oledb;


// веб-сайт пространства имен
//{
общественности частичного класс : система.Веб.Пользовательского интерфейса.Страницы
{
Строка s = "поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=Е:\\СДЛ\\проект.# то # ";
Метод oledbconnection Con в;
OleDbCommand cmd;
бесстрашный;
строковое имя;
строки про;
string compn;
строка добавить;
струнная толпа;
строки почте;
строка карты;
дизайн инт ;
protected void Page_Load(отправитель объекта, EventArgs e)
{

con = новое OleDbConnection(s);
}
охраняемых недействительными методе button2_click(объект отправителя, EventArgs в электронной)
{

пробовать
{
cardid = конвертировать.ToInt32(TextBoxID. Text);
имя = TextBoxName.Текст;
про = TextBoxPro.Текст;
compn = TextBoxCompName.Текст;
добавить = TextBoxAdd.Текст;
моб = TextBoxMobNo.Текст;
почта = TextBoxEmail.Текст;
card = DropDownListCards.Элемент.Метод toString();
дизайн= преобразование.ToInt32(TextBox1. Text);

string query = " insert into cat values(" + cardid+", " + name+", " + pro+", " + compn +", " + add+", " + mob +", " + mail+", " + card +", " + design + ")";
против.Открыть();

cmd = new OleDbCommand(query, con);

int count = cmd.Метод executenonquery();
если (count >= 1)
{
Ответ.Перенаправление ("thanku. aspx");
}
ещё
{
Ответ.Ошибка записи");
}

}
catch (исключение e1)
{
Ответ.Write ("error" + e1. ToString());
}
против.Закрывать();
}

охраняемых недействительными Button3_Click(объект отправителя, EventArgs в электронной)
{
пробовать
{
cardid = конвертировать.ToInt32(TextBoxID. Text);
имя = TextBoxName.Текст;
про = TextBoxPro.Текст;
compn = TextBoxCompName.Текст;
добавить = TextBoxAdd.Текст;
моб = TextBoxMobNo.Текст;
почта = TextBoxEmail.Текст;
card = DropDownListCards.Элемент.Метод toString();
дизайн = преобразование.ToInt32(TextBox1. Text);

строки queryU = "обновить кошка set имя = @имя, моб = @моб, почта = @Почта, карты = @Карта, дизайн = @дизайн (cardid = @cardid и про = @Pro и cmpn = @compn и добавить = @добавить)";
против.Открыть();
cmd = new OleDbCommand(queryU, con);

int count = cmd.Метод executenonquery();
если (count >= 1)
{
Ответ.Перенаправление ("thanku. aspx");
}
ещё
{
Ответ.Ошибка записи");
}

}
catch (исключение e1)
{
Ответ.Write ("error" + e1. ToString());
}
против.Закрывать();

}
}

//}

[no name]

Используйте правильный параметризованный запрос, и ваша проблема может просто разрешиться сама собой.

1 Ответов

Рейтинг:
2

OriginalGriff

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

cmd.Parameters.AddWithValue("@name", name);
...