#c# #asp.net #sql-server
#c# #asp.net #sql-сервер
Вопрос:
Что я пытаюсь сделать, так это в данный момент выбрать все имена пользователей (2 для тестирования) и передать их в массив строк.
Однако все результаты, которые я пробовал до сих пор, дали мне первое имя пользователя, и не все из них, поэтому, если я передам их в массив string, он, вероятно, имеет только 1 значение.
Этикетка1.Текст показывает только 1 результат.
Я пробовал executescalar, ExecuteNonQuery, executereader
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand())
{
con.Open();
string queries = "select username from loginuser";
using (SqlCommand biju = new SqlCommand(queries, con))
{
SqlDataReader sda = null;
sda = biju.ExecuteReader();
while (sda.Read())
{
Label1.Text = sda["username"].ToString();
}
/* sda = biju.ExecuteReader();
string a = Convert.ToString(sda);
Label1.Text = a; */
string message = string.Empty;
message = "list cleared for applicants to register again.";
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" message "');", true);
// Three valid username/password pairs: Scott/password, Jisun/password, and Sam/password.
string[] users = new string[] { Label1.Text };
Комментарии:
1. Вы присваиваете каждому имени пользователя одну и ту же переменную в вашем
while
цикле, поэтому, когда вы хотите добавить его в свой массив, у вас остается только последнее. Вам нужно добавить свои имена пользователей в ваш массив внутри вашегоwhile
цикла.2. Я еще не разобрался со строкой, отображая данные на ярлыке перед передачей в строку, чтобы сначала посмотреть, работает ли она. Однако в метке отображается только 1 данные. Я добавил label.text внутри цикла while , но он по-прежнему отображает только 1 данные.
3. Последнее имя. Это:
Label1.Text = sda["username"].ToString();
перезаписывает каждый раз содержимое метки (почему здесь метка в качестве хранилища, а затем присваивает значение reault переменной?). Добавьте новую строку к существующему тексту. Было бы лучше изменитьstring[] users
наList<string>
и.Add()
новую строку (имя) в цикле. Также потому, что this:string[] users = new string[] { Label1.Text };
в любом случае вернет вам только одну строку.4. Тогда вам понадобится
Label1.Text = sda["username"].ToString();
5. Спасибо всем, это решаемо! Я просто создаю list.add в цикле, а затем преобразую список в массив. Спасибо Джимми и Дейлу за помощь мне 🙂