Member 13361792 Ответов: 1

Как перезагрузить данные из базы данных


Я делаю веб-приложение, в котором есть записи студентов и контрольные работы. Я хочу перезагрузить данные из базы данных, если компьютер внезапно выключится(может быть, из-за проблемы с освещением или проблемы с батареей ноутбука), пока студент делает свой тест. Все отмеченные ответы должны снова отображаться при повторном включении компьютера. Я не могу понять, как это сделать. Ниже приведен мой код.
Кто-нибудь может сказать мне, что делать.

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

использование системы;
использование системы.Коллекции;
использование системы.Конфигурация;
используя системы.Сведения;
использование System. Linq;
использование системы.Сеть;
используя системы.Веб.Безопасности;
используя системы.Веб.ИП;
используя системы.Веб.Пользовательского интерфейса.HtmlControls;
используя системы.Веб.Пользовательского интерфейса.WebControls;
используя системы.Веб.Пользовательского интерфейса.WebControls.элемент webPart;
используя системы.В формате XML.В LINQ;
используя системы.Данных.В SQL;
используя системы.Данных.Поставщики sqlclient;

общественный разделяемого класса _default : на системы.Веб.Пользовательского интерфейса.Страницы
{

Sqlconnection Con;
Команда Sqlcommand Cmd В;
SqlDataAdapter da;
SqlDataReader dr;
Набор ДС;
DataTable dt = новый DataTable();
int recordcount = 0;
int i = 0;
// string strConnString = ConfigurationManager.ConnectionStrings ["ConnectionString"].Параметр connectionString;
protected void Page_Load(отправитель объекта, EventArgs e)
{

Con = new SqlConnection ("источник данных=DESKTOP-Q69PRF4;начальный каталог=new;Интегрированная безопасность=True");
КМД = новая команда sqlcommand("Select * из студенческих где категория='"+сессия["тест"]+ "'", Кон);
da = новый SqlDataAdapter(Cmd);
ds = новый набор данных ("студент");

Кон. Открыт();
this. da. Fill(ds, " студент");
КМД = новая команда sqlcommand("Select * из студенческих где вопрос='" + текстовое поле textbox1.Текст + "'", Кон);
dr = Cmd. ExecuteReader();
в то время как (dr. Read())
{
Label7.Text = dr ["Q_ID"].Метод toString();
лблмарки.Text = dr ["TotalMarks"].Метод toString();

}


recordcount = ДС.Таблицы[0].Строк.Рассчитывать;
Ответ.Write ("Record Count :" + recordcount);


if (recordcount > i)
{
Текстовое поле textbox1.Текст = ДС.Таблицы[0].Строки[я]["вопрос"].Метод toString();
Метка2.Текст = ДС.Таблицы[0].Строки[я]["Choice1"].Метод toString();
Этикетка 3.Текст = ДС.Таблицы[0].Строки[я]["Choice2"].Метод toString();
Label4.Текст = ДС.Таблицы[0].Строки[я]["Choice3"].Метод toString();
Label5.Текст = ДС.Таблицы[0].Строки[я]["Choice4"].Метод toString();
Label6.Текст = ДС.Таблицы[0].Строки[я]["Choice5"].Метод toString();
}
еще
{
Ответ.Напишите("в этой категории нет записей");
}
если (i = = 0)
{
Задав ему значение radiobutton1.Видимое = истинное;
RadioButton2.Видимое = истинное;
RadioButton3.Видимое = истинное;
RadioButton4.Видимое = истинное;
RadioButton5.Видимое = истинное;
CheckBox1.Видна = ложь;
CheckBox2.Видна = ложь;
Отображения checkbox3.Видна = ложь;
CheckBox4.Видна = ложь;
CheckBox5.Видна = ложь;

}
др.Читать();


Зубрить.Закрывать();

}


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

//Кон. Открыть();
//КМД = новая команда sqlcommand("Select * из студенческих где вопрос='" + текстовое поле textbox1.Текст + "'", Кон);
//dr = Cmd. ExecuteReader();
//а (др.Читать())
//{
// Label7.Text = dr ["Q_ID"].Метод toString();
//}
//Кон. Закрыть();

Поле textbox2.Текст = (тип int.Синтаксический Анализ(Поле Textbox2.Текст) + 1).Метод toString();

i = преобразовать.ToInt32(TextBox2. Text);


Текстовое поле textbox1.Текст = ДС.Таблицы[0].Строки[я]["вопрос"].Метод toString();
Метка2.Текст = ДС.Таблицы[0].Строки[я]["Choice1"].Метод toString();
Этикетка 3.Текст = ДС.Таблицы[0].Строки[я]["Choice2"].Метод toString();
Label4.Текст = ДС.Таблицы[0].Строки[я]["Choice3"].Метод toString();
Label5.Текст = ДС.Таблицы[0].Строки[я]["Choice4"].Метод toString();
Label6.Текст = ДС.Таблицы[0].Строки[я]["Choice5"].Метод toString();


если (i == 1)
{
Задав ему значение radiobutton1.Видна = ложь;
RadioButton2.Видна = ложь;
RadioButton3.Видна = ложь;
RadioButton4.Видна = ложь;
RadioButton5.Видна = ложь;
CheckBox1.Видимое = истинное;
CheckBox2.Видимое = истинное;
Отображения checkbox3.Видимое = истинное;
CheckBox4.Видимое = истинное;
CheckBox5.Видимое = истинное;

}

иначе если (i == 2)
{
Задав ему значение radiobutton1.Видимое = истинное;
RadioButton2.Видимое = истинное;
RadioButton3.Видимое = истинное;
RadioButton4.Видимое = истинное;
RadioButton5.Видимое = истинное;
CheckBox1.Видна = ложь;
CheckBox2.Видна = ложь;
Отображения checkbox3.Видна = ложь;
CheckBox4.Видна = ложь;
CheckBox5.Видна = ложь;

}
иначе если (i == 3)
{
Задав ему значение radiobutton1.Видна = ложь;
RadioButton2.Видна = ложь;
RadioButton3.Видна = ложь;
RadioButton4.Видна = ложь;
RadioButton5.Видна = ложь;
CheckBox1.Видимое = истинное;
CheckBox2.Видимое = истинное;
Отображения checkbox3.Видимое = истинное;
CheckBox4.Видимое = истинное;
CheckBox5.Видимое = истинное;

}
еще
{
Задав ему значение radiobutton1.Видимое = истинное;
RadioButton2.Видимое = истинное;
RadioButton3.Видимое = истинное;
RadioButton4.Видимое = истинное;
RadioButton5.Видимое = истинное;
CheckBox1.Видна = ложь;
CheckBox2.Видна = ложь;
Отображения checkbox3.Видна = ложь;
CheckBox4.Видна = ложь;
CheckBox5.Видна = ложь;


}

}



охраняемых недействительными previous_Click(объект отправителя, EventArgs в электронной)
{
//Кон. Открыть();
//КМД = новая команда sqlcommand("Select * из студенческих где вопрос='" + текстовое поле textbox1.Текст + "'", Кон);
//dr = Cmd. ExecuteReader();
//а (др.Читать())
//{
// Label7.Text = dr ["Q_ID"].Метод toString();
//}
//Кон. Закрыть();
Поле textbox2.Текст = (тип int.Синтаксический Анализ(Поле Textbox2.Текста) - 1).Метод toString();
i = преобразовать.ToInt32(TextBox2. Text);

// Label7.Текст = ДС.Таблицы[0].Строки[я]["Q_ID"].Метод toString();

Текстовое поле textbox1.Текст = ДС.Таблицы[0].Строки[я]["вопрос"].Метод toString();
Метка2.Текст = ДС.Таблицы[0].Строки[я]["Choice1"].Метод toString();
Этикетка 3.Текст = ДС.Таблицы[0].Строки[я]["Choice2"].Метод toString();
Label4.Текст = ДС.Таблицы[0].Строки[я]["Choice3"].Метод toString();
Label5.Текст = ДС.Таблицы[0].Строки[я]["Choice4"].Метод toString();
Label6.Текст = ДС.Таблицы[0].Строки[я]["Choice5"].Метод toString();



если (i == 1)
{
Задав ему значение radiobutton1.Видна = ложь;
RadioButton2.Видна = ложь;
RadioButton3.Видна = ложь;
RadioButton4.Видна = ложь;
RadioButton5.Видна = ложь;
CheckBox1.Видимое = истинное;
CheckBox2.Видимое = истинное;
Отображения checkbox3.Видимое = истинное;
CheckBox4.Видимое = истинное;
CheckBox5.Видимое = истинное;

}
иначе если (i == 2)
{
Задав ему значение radiobutton1.Видимое = истинное;
RadioButton2.Видимое = истинное;
RadioButton3.Видимое = истинное;
RadioButton4.Видимое = истинное;
RadioButton5.Видимое = истинное;
CheckBox1.Видна = ложь;
CheckBox2.Видна = ложь;
Отображения checkbox3.Видна = ложь;
CheckBox4.Видна = ложь;
CheckBox5.Видна = ложь;

}
иначе если (i == 3)
{
Задав ему значение radiobutton1.Видна = ложь;
RadioButton2.Видна = ложь;
RadioButton3.Видна = ложь;
RadioButton4.Видна = ложь;
RadioButton5.Видна = ложь;
CheckBox1.Видимое = истинное;
CheckBox2.Видимое = истинное;
Отображения checkbox3.Видимое = истинное;
CheckBox4.Видимое = истинное;
CheckBox5.Видимое = истинное;
}
еще
{
Задав ему значение radiobutton1.Видимое = истинное;
RadioButton2.Видимое = истинное;
RadioButton3.Видимое = истинное;
RadioButton4.Видимое = истинное;
RadioButton5.Видимое = истинное;
CheckBox1.Видна = ложь;
CheckBox2.Видна = ложь;
Отображения checkbox3.Видна = ложь;
CheckBox4.Видна = ложь;
CheckBox5.Видна = ложь;
}


}

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



строку в CS = "источник данных=рабочий стол-Q69PRF4;начальный каталог=новый;Комплексная безопасность=истина";
SqlConnection con = новый SqlConnection(cs);
if (con. State == ConnectionState.Открыть)
{
против.Закрывать();
}
//кон.Открыть();
//КМД = новая команда sqlcommand("Select * из студенческих где вопрос='" + текстовое поле textbox1.Текст + "'", кон);
//SqlDataReader r = Cmd. ExecuteReader();
////SqlDatareader dr = Cmd. ExecuteReader();
//а (р.Читать())
//{
// Label7.Text = r ["Q_ID"].Метод toString();
//}
//кон.Рядом();
против.Открыть();

если (задав ему значение radiobutton1.Видимое == правда)
{
если (задав ему значение radiobutton1.Проверен)
{
string query = " insert into CBE (Q_ID,StID,Answer)values('" + Label7.Текст +"', '" + Session ["new"]+"', '" + lblA.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
else if (RadioButton2.Проверен )
{
string query = " insert into CBE (Q_ID,StID,Answer)values('" + Label7.Text + "', '" + Session ["new"]+"', '" + lblB.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
else if (RadioButton3.Проверен )
{
string query = " insert into CBE (Q_ID,StID,Answer)values('" + Label7.Text + "','" + Session ["new"]+"', '" + lblC.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
еще если (RadioButton4.Проверен )
{
string query = " insert into CBE (Q_ID,StID,Answer)values('" + Label7.Text + "', '" + Session ["new"]+"', '" + lblD.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
else if (RadioButton5.Проверен )
{
string query = " insert into CBE (Q_ID,StID,Answer)values('" + Label7.Text + "', '" + Session ["new"]+"', '" + lblE.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
еще
{
если (CheckBox1.Проверено)
{
string query = " insert into CBE (Q_ID,StID,Ans1)values('" + Label7.Текст +"', '" + Session ["new"]+"', '" + lblA.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
еще если (CheckBox2. Checked)
{
string query = " insert into CBE (Q_ID,StID,Ans2)values('" + Label7.Text + "', '" + Session ["new"]+"', '" + lblB.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
остальное, если (отображения checkbox3.Проверено)
{
string query = " insert into CBE (Q_ID,StID,Ans3)values('" + Label7.Text + "','" + Session ["new"]+"', '" + lblC.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
еще если (CheckBox4. Checked)
{
string query = " insert into CBE (Q_ID,StID,Ans4)values('" + Label7.Text + "', '" + Session ["new"]+"', '" + lblD.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
остальное, если (CheckBox5.Проверено)
{
string query = " insert into CBE (Q_ID,StID,Ans5)values('" + Label7.Text + "', '" + Session ["new"]+"', '" + lblE.Текст + "')";
SqlCommand cmd = new SqlCommand(query, con);
УМК.Метод executenonquery();

}
}
}
против.Закрывать();

против.Открыть();
КМД = новая команда sqlcommand("выберите решение от студента, где Q_Id='"+Label7.Текст+"'",кон);
SqlDataReader dr = Cmd. ExecuteReader();
в то время как (dr. Read())
{
Label8.Text = dr ["решение"].Метод toString();

}
против.Закрывать();
//кон.Открыть();
//string qr = " Update CBE Set Answer=' " + Label8.Text + "' где Q_ID='"+Label7. Text+"'";

//Cmd = new SqlCommand(qr, con);

//dr = Cmd. ExecuteReader();

//а (др.Читать())
//{
// lblans.Text = dr ["ответ"].Метод toString();
//}
//кон.Рядом();
против.Открыть();
Cmd = new SqlCommand ("select * from CBE where Q_ID='" + Label7.Текст + "'", кон);

dr = Cmd. ExecuteReader();

в то время как (dr. Read())
{
если (задав ему значение radiobutton1.Видимое == правда)
{
если (задав ему значение radiobutton1.Проверен)
{
lblcheck.Text = dr ["ответ"].Метод toString();
}
else if (RadioButton2.Проверен)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
else if (RadioButton3.Проверен)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
еще если (RadioButton4.Проверен)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
else if (RadioButton5.Проверен)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
еще
{
lblcheck.Текст = "";
}
}
еще
{
если (CheckBox1.Проверено)
{
lblcheck.Text = dr ["ответ"].Метод toString();
}
еще если (CheckBox2. Checked)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
остальное, если (отображения checkbox3.Проверено)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
еще если (CheckBox4. Checked)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
остальное, если (CheckBox5.Проверено)
{
lblcheck.Text = dr ["ответ"].Метод toString();

}
еще
{
lblcheck.Текст = "";
}
}

}
против.Закрывать();
против.Открыть();
Cmd = new SqlCommand ("Select TotalMarks from Student where Q_ID='" + Label7.Текст + "'", кон);
dr = Cmd. ExecuteReader();
в то время как (dr. Read())
{
lblques.Text = dr ["TotalMarks"].Метод toString();
}
против.Закрывать();
против.Открыть();
если (lblcheck.Текст == Label8.Текст)
{

Cmd = new SqlCommand ("Update CBE Set StMarks='" + lblques.Текст + "' where Q_ID=' " + Label7.Текст + "'", кон);

}
еще если (lblcheck.Текст != Label8. Text)
{
Cmd = new SqlCommand ("Update CBE Set StMarks='" + lblm.Текст + "' where Q_ID=' " + Label7.Текст + "'", кон);

}
еще
lblques.Text = " Пожалуйста, выберите хотя бы один вариант";
УМК.Метод executenonquery();

против.Закрывать();


}


пустота, ясный()

{

Задав ему значение radiobutton1.Проверено = ложь;
RadioButton2.Проверено = ложь;
RadioButton3.Проверено = ложь;
RadioButton4.Проверено = ложь;
RadioButton5.Проверено = ложь;
CheckBox1.Проверено = ложь;
CheckBox2.Проверено = ложь;
Отображения checkbox3.Проверено = ложь;
CheckBox4.Проверено = ложь;
CheckBox5.Проверено = ложь;
}




}

1 Ответов

Рейтинг:
12

OriginalGriff

У вас есть проблемы посерьезнее, чем вы думаете , и просто вываливать на нас весь свой код и ожидать, что мы разберемся, что, черт возьми, вы имеете в виду, это не так - это просто грубо.

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

Когда вы объединяете строки, вы вызываете проблемы, потому что SQL получает такие команды, как:

SELECT * FROM MyTable WHERE StreetAddress = 'Baker's Wood'
Цитата, добавленная пользователем, завершает строку с точки зрения SQL, и вы получаете проблемы. Но могло быть и хуже. Если я приду и наберу вместо этого: "x'; DROP TABLE MyTable;--", то SQL получит совсем другую команду:
SELECT * FROM MyTable WHERE StreetAddress = 'x';DROP TABLE MyTable;--'
Которые SQL видит как три отдельные команды:
SELECT * FROM MyTable WHERE StreetAddress = 'x';
Совершенно правильный выбор
DROP TABLE MyTable;
Вполне допустимая команда "удалить таблицу"
--'
А все остальное-это комментарии.
Так оно и происходит: выбирает любые совпадающие строки, удаляет таблицу из базы данных и игнорирует все остальное.

Поэтому всегда используйте параметризованные запросы! Или будьте готовы часто восстанавливать свою БД из резервной копии. Вы ведь регулярно делаете резервные копии, не так ли?


Member 13361792

Я беру подмогу. И спасибо за совет.