#asp.net
#asp.net
Вопрос:
Привет, в чем польза хэш-таблицы? могу ли я использовать для перемещения записи из базы данных событие нажатия кнопки с использованием хэш-таблицы? если да, то насколько это возможно? Спасибо.
//This is the function i used to get next record from database
public void getNextQuestion()
{
if (Convert.ToInt32(Session["counter"].ToString()) < 7)
{
if (RblOption.SelectedIndex >= 0)
{
string str1 = "";
SqlDataAdapter da3 = new SqlDataAdapter(str1, sqlconn);
Session["selans"] = RblOption.SelectedIndex.ToString();
if (Session["Answer"].ToString() == RblOption.SelectedIndex.ToString())
{
int score = Convert.ToInt32(txtScore.Text) 1;
txtScore.Text = score.ToString();
lblScore.Text = "Score : " Convert.ToString(score);
}
//Random rnd = new Random();
//var i = rnd.Next(1, 6);
SqlDataAdapter da = new SqlDataAdapter("select Q_id from Test_Final where Serial='1' order by Q_id", sqlconn);
DataSet ds = new DataSet();
da.Fill(ds, "Test_Final");
if (ds.Tables[0].Rows.Count > 0)
{
myArray = new int[ds.Tables[0].Rows.Count];
bool flag;
for (int i = 1; i < ds.Tables[0].Rows.Count; i )
{
myArray[i] = Convert.ToInt32(ds.Tables[0].Rows[i]["Q_id"].ToString());
//Response.Write(myArray[i]);
Random random = new Random();
int randomNo = random.Next(0, myArray.Length);
flag = true;
for (int x = 0; x < myArray.Length; x )
{
if (randomNo == myArray[x])
{
i--;
flag = false;
break;
}
}
if (flag)
myArray[i] = randomNo;
}
Session["counter"] = Convert.ToString(Convert.ToInt32(Session["counter"].ToString()) 1);
getQuestion(myArray[z]);
}
else
{
RegisterStartupScript("myAlert", "<script>alert('Please select the option')</script>");
}
}
else
{
Response.Redirect("Default.aspx");
}
}
}
Комментарии:
1. Да, вы, вероятно, можете задействовать хэш-таблицу в этом процессе 😉
2. как я могу добавлять элементы из таблицы в хэш-таблицу
3. Не могли бы вы объяснить, почему вы считаете, что вам нужна хэш-таблица?
4. На самом деле я хочу переместить следующую запись после нажатия кнопки далее, я использовал код, для которого я опубликовал, но он получает повторяющиеся значения
Ответ №1:
Добавьте код при нажатии кнопки, как показано ниже
защищенная пустая кнопка 1_click(отправитель объекта, EventArgs e) { ключ int; имя строки = string.Пусто; строка str = string.Пусто; Хэш-таблица hashtable = new Hashtable(); ключ = 1; имя = «Jake»; хэш-таблица.Добавить (ключ, имя); ключ = 2; имя = «питер»; хэш-таблицу.Добавить (ключ, имя); ключ = 3; имя = «лилия»; хэш-таблицу.Добавить (ключ, имя); foreach (DictionaryEntry de в хэш-таблице) { str = str «key=» de.Ключ » » » значение=» de.Value.toString() «
«; } }
Если я правильно понял вас, то вы хотите что-то вроде этого
public Hashtable Createashtable(string keyColumnName, DataTable table)
{
Hashtable hash = new Hashtable();
for (int rowIndex = 0; rowIndex < table.Rows.Count; rowIndex )
{
hash.Add(table.Rows[rowIndex][keyColumnName], table.Rows[rowIndex]);
}
return hash;
}
}
Комментарии:
1. Я должен взять данные из базы данных. Я использовал dataset для сбора данных, но я хочу перейти от 1-й записи к следующей до конца. Тогда как это возможно?